程序优化

.预分配内存

     预分配内存主要是针对需要循环处理数据的情况的。比如视频处理,每帧图像的处理都需要一定的缓存,如果每帧申请释放,则势必会降低算法效率,如下所示:

View Code
复制代码
 1 //处理一帧  2 void Process(BYTE *pimg, BYTE *pBuffer)  3 {  4  ...  5 }  6  7 //循环处理一个视频  8 malloc pBuffer  9 for(int i = 0; i < N; i++) 10 { 11 BYTE *pimg = readimage(); 12  Process(pimg, pBuffer); 13 } 14 free
复制代码

    前一段代码在每帧处理都malloc和free,而后一段代码则是有上层传入缓存,这样内部就不需每次申请和释放了。当然上面只是一个简单说明,实际情况会比这复杂得多,但整体思想  是一致的。

你可能感兴趣的:(程序优化)