« Home | 無線訊號接收器 » | ENUM簡介 » | WINNT/XP的boot.ini筆記 » | 為什麼Embedded Linux 也有不同套件版本?! » | Linux 常用指令-Kernel Module相關 » | Linux 常用指令 Kernel Module相關 » | 視訊規格筆記 » | UPnP Media Server GPL-LINUX » | Linux下UPNP的安裝 » | Linux 古董?! » 

2005/08/03 

Optimizing Memcpy improves speed

Thursday, August 4, 2005
8/3/2005 10:51:11 PM
Source:embedded.com
Optimizing Memcpy improves speed
void * memcpy(void * dst, void const * src, size_t len)
{
long * plDst = (long *) dst;
long const * plSrc = (long const *) src;

if (!(src & 0xFFFFFFFC) && !(dst & 0xFFFFFFFC))
{
while (len >= 4)
{
*plDst++ = *plSrc++;
len -= 4;
}
}

char * pcDst = (char *) plDst;
char const * pcDst = (char const *) plSrc;


while (len--)
{
*pcDst++ = *pcSrc++;
}

return (dst);
}
一次複製一個long(4bytes)會比一次搬一個char快多了,最後再把不足一個long的複製完
(只看迴圈部份就由len一次加減1變為 4,就省下不少啦.......
做video audio stream, buffer 的人一定要用啦!

About me

  • I'm Martin's blog 馬汀的部落格
  • From 中壢市, 桃園縣, Taiwan
  • -----BEGIN GEEK CODE BLOCK----- Version: 3.1 Comment: For info see http://www.geekcode.com GC/CS/CC/E/IT/TW d- s a C++++ L++++ P+ L++++ E--- W+++ N++ o+ K- w+++ O- M- V- PS+ PE++ Y+ PGP+ t 5- X++ R- tv- b+++ DI+ D-- G e+++ h+ r+ y+ z? ------END GEEK CODE BLOCK------ /**************************** 旅行是我生命的動力 它的樂趣從計劃旅行開始 我樂於分享旅行及Linux Kernel上的每一件事. ****************************/
My profile