阅读:934回复:4
每100MS内完成1M字节的逐字节转移,竟然占了80的CPU时间,这是怎么回事?
WIN2K,P4 1.6G 512MDDR内存,INTER芯片组,程序用VC6写的,目的是组织32路每路32K数据源到1M缓冲用于PCI输出,没想到这么简单的的数据移动操作竟然这么占资源!!谁能告诉我该怎么办??
|
|
|
沙发#
发布于:2002-11-24 21:51
估计用DMA可能快些!!
|
|
板凳#
发布于:2002-11-25 00:06
哥哥哎,本来就是内存间的数据移动,再者要组织数据,也就是说把一个数组内的数据转移到另一个数组中,但数据在数组中的位置却要重新安排,DMA?扯远啦!
|
|
|
地板#
发布于:2002-11-26 12:45
问题可能出在CPU的高速缓存上,由于我的处理中,组织数据时,访问的内存空间地址跨度很大,超出了高速缓存的可用尺寸,导致内存指针每移动一次,就要刷新一次高速缓存,也就是说我只处理了一个字节,却让CPU读了整个缓存尺寸的的内存,速度不慢才奇怪了!想了一天才想到这个问题,今天改个算法试试!
|
|
|
地下室#
发布于:2002-11-26 13:12
不好意思,老眼昏花,没看清题目,一看到32路我以为从外设读取数据呢?(我正在做一个16路的读外设数据的程序)
|
|