上周的帖子"关于算法的速度问题"在csdn和vchelp上大家争论颇多,但还没完全解决,这个问题也颇有代表性:问题是:
我做了一个视频压缩(活动图象)算法,没有任何图象的显示.
在联想朝阳P4 2.0G的笔记本(intel pentium4-M,2002Mhz, Northwood: D1.缓存是1M,内存512DDR)上处理速度是15帧/秒, 我到P42.8G的台式机(至强双奔4,SCIS硬盘,1G内存.)上测试,发现只有17帧/秒. 
为什么台式机的速度和笔记本的速度差不多? 按道理来讲应该差别很大.
我用性能监视器发现台式机CPU利用率只有30%. 而在笔记本上运行的时候基本上都是100%.
算法用了SSE指令的release版本文,在台式机和笔记本上运行的同样的该程序.答案:
瓶颈在CPU还是内存?1.如果是CPU的话,那为什么提高了CPU反而利用率大大下降?
2.如果是内存的话,两台机子内存都很大,vchelp的angels说"先要保证内存足够大,能一次读进你所有的图像数据,不要发生内存交换的情况.其次,要保证处理后的数据也要有地方放,也不要发生内存交换的情况.否则数据一但交换进硬盘,你的速度会以几何级数下降". 算法里面有内存交换不假,但是内存交换影响就这么大吗?(我的每一副图象处理中都有memcpy,拷贝的数据量不是很大)参考:
http://www.vchelp.net/cndevforum/subject_view.asp?subject_id=98341&forum_id=
http://community.csdn.net/Expert/topic/3145/3145410.xml?temp=3.197879E-02