Fw: [請益] C語言memcpy()的效率問題
※ [本文轉錄自 Soft_Job 看板 #1JHAVIT- ]
作者: kkkmode (kkk) 看板: Soft_Job
標題: [請益] C語言memcpy()的效率問題
時間: Wed Apr 9 09:52:15 2014
各位好,
我測試了一段程式,如下:
#include <stdio.h>
#define size 65536
void main(){
char source[size], destination[size];
int j;
for(j=0; j<100000; j++)
memcpy(destination, source, size);
}
把size改成65535或65537執行速度大概會慢10倍(compiler沒設最佳化)
其他2的冪次方加減1也有此現象(例如1024改成1023或1025)
我覺得可能是cache沒命中造成的
但詳細的原因不是很清楚
如果各位知道原因的話請幫忙一下,謝謝
******************************************************************
補上編譯環境:
IDE: code::blocks 13.12
compiler套件: TDM-GCC, v4.7.1, 32 bit
作業系統: windows 8.1 64 bit
CPU: intel core-i3 2100
後來改在linux上測(也是沒有最佳化選項)
改變size(65536->65535),時間沒有差異
objdump也試過,我是輸入以下兩行指令:
gcc -Wall -O0 -g main.c -o main.exe
objdump -Sl --no-show-raw-insn main.exe > output.txt
但組語不熟且非常多行
看起來和亂碼一樣,所以投降了...
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 111.251.44.11
※ 文章網址: http://www.ptt.cc/bbs/Soft_Job/M.1397008338.A.77E.html
→
04/09 10:47, , 1F
04/09 10:47, 1F
※ 發信站: 批踢踢實業坊(ptt.cc)
※ 轉錄者: kkkmode (111.251.44.11), 04/09/2014 11:10:34
推
04/09 16:54, , 2F
04/09 16:54, 2F
→
04/09 16:55, , 3F
04/09 16:55, 3F
→
04/09 16:57, , 4F
04/09 16:57, 4F
推
04/09 17:15, , 5F
04/09 17:15, 5F
→
04/10 00:14, , 6F
04/10 00:14, 6F
→
04/10 10:54, , 7F
04/10 10:54, 7F
→
04/10 11:00, , 8F
04/10 11:00, 8F
→
04/10 11:04, , 9F
04/10 11:04, 9F
推
04/10 13:32, , 10F
04/10 13:32, 10F
推
04/10 14:29, , 11F
04/10 14:29, 11F
→
04/10 14:31, , 12F
04/10 14:31, 12F
→
04/10 14:31, , 13F
04/10 14:31, 13F
→
04/10 14:32, , 14F
04/10 14:32, 14F
→
04/10 20:04, , 15F
04/10 20:04, 15F
※ 編輯: kkkmode (1.160.87.36), 04/10/2014 21:14:41
※ 編輯: kkkmode (1.160.87.36), 04/10/2014 21:16:11
※ 編輯: kkkmode (1.160.87.36), 04/10/2014 21:17:48
推
04/11 01:33, , 16F
04/11 01:33, 16F
→
04/11 01:33, , 17F
04/11 01:33, 17F
→
04/11 01:33, , 18F
04/11 01:33, 18F
→
04/11 01:34, , 19F
04/11 01:34, 19F
→
04/11 01:34, , 20F
04/11 01:34, 20F
→
04/11 01:34, , 21F
04/11 01:34, 21F
→
04/11 01:34, , 22F
04/11 01:34, 22F
→
04/11 01:34, , 23F
04/11 01:34, 23F
→
04/11 01:35, , 24F
04/11 01:35, 24F
→
04/11 01:35, , 25F
04/11 01:35, 25F
→
04/11 01:35, , 26F
04/11 01:35, 26F
→
04/11 01:35, , 27F
04/11 01:35, 27F
→
04/11 01:35, , 28F
04/11 01:35, 28F
→
04/11 01:35, , 29F
04/11 01:35, 29F
→
04/11 01:36, , 30F
04/11 01:36, 30F
→
04/11 01:36, , 31F
04/11 01:36, 31F
→
04/11 01:36, , 32F
04/11 01:36, 32F
→
04/11 01:36, , 33F
04/11 01:36, 33F
→
04/11 01:36, , 34F
04/11 01:36, 34F
→
04/11 01:36, , 35F
04/11 01:36, 35F
→
04/11 01:36, , 36F
04/11 01:36, 36F
→
04/11 01:36, , 37F
04/11 01:36, 37F
→
04/11 01:37, , 38F
04/11 01:37, 38F
→
04/11 01:37, , 39F
04/11 01:37, 39F
→
04/11 01:38, , 40F
04/11 01:38, 40F
推
04/11 01:58, , 41F
04/11 01:58, 41F
推
04/11 02:12, , 42F
04/11 02:12, 42F
→
04/11 02:12, , 43F
04/11 02:12, 43F
→
04/11 02:12, , 44F
04/11 02:12, 44F
→
04/11 02:13, , 45F
04/11 02:13, 45F
→
04/11 02:13, , 46F
04/11 02:13, 46F
→
04/11 02:13, , 47F
04/11 02:13, 47F
→
04/11 02:13, , 48F
04/11 02:13, 48F
→
04/11 02:13, , 49F
04/11 02:13, 49F
→
04/11 02:15, , 50F
04/11 02:15, 50F
推
04/15 16:57, , 51F
04/15 16:57, 51F
討論串 (同標題文章)
以下文章回應了本文:
完整討論串 (本文為第 1 之 2 篇):