memcpy 和 乙個位元組乙個位元組的複製的乙個區別就是,memcpy 可以複製乙個cpu 的字 而 單位元組複製只能複製乙個位元組。
但是,今天還發現了乙個很重要的特點,複製的速度 還和 記憶體的內容相關,如果目標記憶體 和 當前記憶體的內容差不多,發現
居然複製速度要快一些。
前面文章中,我說的最後一種速度是 96ms, 是錯誤的。
測試**如下:
t = clock();
strcpy1(dest, src); //我的複製方法 140ms
printf("%d ms\n", clock() - t);
t = clock();
strcpy(dest, src); //系統函式的複製方法 96ms
printf("%d ms \n", clock() - t);
t = clock();
strcpy(dest, src); //系統函式的複製方法 140ms
printf("%d ms \n", clock() - t);
t = clock();
strcpy1(dest, src); //我的複製方法 96ms
printf(" %d ms\n", clock() - t);
如果你測試一下 用memcpy,可以發現這 96ms就是memcpy複製這個記憶體區域的速度。
具體原因不知道是為什麼。哪位高手可以告訴我。
固態硬碟的速度和記憶體的速度差距
記憶體的基本構架和固態硬碟發熱構架完全不同,固態硬碟的儲存晶元是非易失性儲存介質 nvram 也就是沒有電源後內部儲存的資料不會丟失。nand型快閃儲存器為例,它的隨機訪問速度慢,而且寫入資料之前還要對區塊進行擦除,使得寫速度僅有讀取速度的1 2 1 4,這種現象在目前廣泛使用的mlc nand上更...
Delphi 的記憶體操作函式 5 複製記憶體
movememory copymemory 的功能是一模一樣的,都是複製記憶體,都是呼叫 move 過程 movememory copymemory 操作指標 move 操作實體.還要注意,它們的引數位置不一樣 舉例 var buf1,buf2 array 0.9 of ansichar begin...
Delphi 的記憶體操作函式 5 複製記憶體
movememory copymemory 的功能類似,都是複製記憶體,都是呼叫 move 過程 movememory copymemory 操作指標 move 操作實體.還要注意,它們的引數位置不一樣 varbuf1,buf2 array 0.9 of ansichar begin buf1 01...