内存寻址优化
来源:互联网 发布:淘宝客 返利网 编辑:程序博客网 时间:2024/05/18 01:55
内存寻址的简单优化
问题描述:
在程序中,使用malloc或new创建一块内存用来存放二维或多维数组,当需要对数组进行遍历或进行块操作时,就需要对内存进行寻址操作,在寻址时,不可避免的存在不连续取址操作。
对于不连续寻址分成两种,一种是随机寻址,一种是有规律的寻址入多维矩阵。对于随机寻址可以使用基址+相对地址寻址即可。
对于有规律的寻址,应尽量避免乘法的使用,尽量避免每次使用绝对地址。
void breakPath(lprec *lp, int * path_list, int path_length){ double * row_LE; int * cur_node_ptr; // allocation row_LE = new double[edge_num_count]; memset(row_LE, 0, edge_num_count*sizeof(double)); //循环 cur_node_ptr = path_list;//使用基地址 for (int node_idx = 0; node_idx < path_length - 1; node_idx++,cur_node_ptr++) { int matrix_offset = cur_node_ptr[0] * node_num_count + cur_node_ptr[1];//偏移量单独计算 row_LE[matrix[matrix_offset]] = 1; } // N nodes -> N-1 path-> less then N-1, so the sum of all the edges is path_length-2 add_constraintex(lp, edge_num_count, row_LE, colno, LE , path_length-2); // destory delete[] row_LE;};
通过以上优化方法,可以提升寻址速度。
0 0
- 内存寻址优化
- 内存寻址
- 内存寻址
- 内存寻址
- 内存寻址
- 内存寻址
- 内存寻址
- 内存寻址
- 内存寻址
- 内存寻址
- 内存寻址
- linux 内存寻址总结
- linux 内存寻址总结
- linux--内存寻址
- linux内存寻址
- Linux0.12-内存寻址
- linux内存寻址
- linux内存寻址
- Ibatis中添加oscache缓存
- 剑指offer(5) 旋转数组中的最小值
- Mysql接口大全
- 试试博客
- 【DirectX11-Tutorial】Initializing Direct3D
- 内存寻址优化
- 1.gcc的基本使用
- BZOJ1071 [SCOI2007]组队
- 关于java单例模式实现
- RecyclerView的简单使用
- android从自己的应用打开邮箱和QQ
- xml之SAX,DOM,PULL解析
- 【BZOJ3437】小P的牧场,斜率优化DP
- 如何取消或定制当点击GridView 的时候出现的那个黄色背景