這篇對 .so 解釋很清楚。
出處 --->http://loda.zhupiter.com/LinuxDynamicLibrary.htm
//----以下 copy ------
memcpy(B, A, chunksize);
透過mmap來做的話,可以藉由以下的寫法
int self;
self = open("/proc/self/mem", O_RDONLY);
如下表
< 筆者電腦配備: PII 350,64MB RAM>
| memcpy | mmap |
512 | 0.14 | 0.23 |
1024 | 0.26 | 0.35 |
2048 | 0.51 | 0.59 |
4096 | 1.00 | 1.06 |
8192 | 2.56 | 2.10 |
16384 | 5.67 | 4.55 |
32768 | 11.71 | 8.96 |
65536 | 23.63 | 17.75 |
| | |
我們不難發現當記憶體區塊為512、1024、2048、4096時,memcpy都勝過mmap。不過當拷貝的記憶體區塊越來越大時,mmap明顯表現的相當有效率,像最後測試的記憶體區塊大小為65536 bytes,mmap相較於memcpy所花的時間少了約6秒鐘。
//---------------------------------
沒有留言:
張貼留言