-
2004-10-03
memcpy优化
版权声明:转载时请以超链接形式标明文章原始出处和作者信息及本声明
http://ffmpeg.blogbus.com/logs/421988.html
由于多媒体程序中有很多的数据拷贝,所以会用到数据量比较大的memcpy。
因为我们知道,memcpy的时候我们不用去关心目标地址处数据原来的内容,只要直接覆盖过去就可以了。但是内存管理的特性是,如果你要访问的数据地址不在cache中,那么处理器会将内存中的数据导入cache,然后获得一个可以命中的地址。而在这种memcpy的过程中,不需要原来内存中的数据,可以直接利用内存的allocate特性,也就是直接得到一个命中地址,在cache中分配出一条cache line来,节省了从内存导入数据的时间(这部分时间相当客观,而且还占据总线资源)。
优化方法就是,在要拷贝的数据大于两条cache line空间的时候,那么我们总能保证有一条cache line是要被完全覆盖的,可以用allocate的方法开出一个cache line 空间。剩余的数据还是用原来的memcpy实现。
随机文章:
xvid 代码的几个小bug 2005-01-08rmp4包简单介绍 2004-12-28读取码流的函数 2004-12-23YUV2RGB565(16位色) 2004-12-03oh my god,我改,改,改 2004-11-27
收藏到:Del.icio.us








评论