[問題] mingw及msvc效能上的差異
最近我嘗試最佳化heap,想要去掉realloc的成本
製作了linked list + array(以2冪次方增長) 的heap
以及將linked list以 vector取代,以vector< vector<ty> >實作的heap
對比vector<ty> 實作的heap
realloc的資料複製應該會拖累速度,但mingw勝過msvc
今日我嘗試加入1000萬個資料後再pop 看看處理時間 得到如下
這是在
AMD Sempron 2800+(1.6Ghz) CPU,
DDR400 1.5GB DRAM
Windows XP
跑出來的數據
MinGw -O3 | MSVC2005 完全最佳化
vector 188~190萬 | 102萬/秒
linked list + array 172~200萬/秒 | 同左
vector< vector<ty> >p 120~150萬/秒 | 60萬/秒
vector會是效能差異的主要可能嗎? 很難相信msvc會有如此的表現
msvc我開啟完全最佳化,偏好速度,整個程式最佳化,使用exception
mingw開啟 O3, 參數 unroll-all-loop,使用exception
以下是主程式
其中Sunneo::Heap以linked list+array實作
Heap以vector實作
HeapVec以vector< vector<> >實作
http://sunneo.myweb.hinet.net/public/HeapTest.cpp
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 61.227.232.156
推
03/23 01:30, , 1F
03/23 01:30, 1F
→
03/23 01:40, , 2F
03/23 01:40, 2F
→
03/23 01:42, , 3F
03/23 01:42, 3F
→
03/23 01:42, , 4F
03/23 01:42, 4F
→
03/23 01:42, , 5F
03/23 01:42, 5F
→
03/23 01:43, , 6F
03/23 01:43, 6F
→
03/23 01:43, , 7F
03/23 01:43, 7F
→
03/23 01:44, , 8F
03/23 01:44, 8F
→
03/23 01:46, , 9F
03/23 01:46, 9F
推
03/23 01:48, , 10F
03/23 01:48, 10F
→
03/23 02:03, , 11F
03/23 02:03, 11F
→
03/23 02:04, , 12F
03/23 02:04, 12F
→
03/23 02:04, , 13F
03/23 02:04, 13F
→
03/23 02:04, , 14F
03/23 02:04, 14F
→
03/23 02:04, , 15F
03/23 02:04, 15F
→
03/23 02:04, , 16F
03/23 02:04, 16F
推
03/23 02:06, , 17F
03/23 02:06, 17F
→
03/23 02:07, , 18F
03/23 02:07, 18F
→
03/23 02:07, , 19F
03/23 02:07, 19F
→
03/23 02:07, , 20F
03/23 02:07, 20F
→
03/23 02:07, , 21F
03/23 02:07, 21F
→
03/23 02:07, , 22F
03/23 02:07, 22F
→
03/23 02:08, , 23F
03/23 02:08, 23F
→
03/23 02:08, , 24F
03/23 02:08, 24F
→
03/23 02:10, , 25F
03/23 02:10, 25F
→
03/23 02:14, , 26F
03/23 02:14, 26F
→
03/23 02:16, , 27F
03/23 02:16, 27F
→
03/23 02:20, , 28F
03/23 02:20, 28F
→
03/23 02:20, , 29F
03/23 02:20, 29F
推
03/23 07:53, , 30F
03/23 07:53, 30F
→
03/23 07:53, , 31F
03/23 07:53, 31F
→
03/23 08:02, , 32F
03/23 08:02, 32F
→
03/23 10:05, , 33F
03/23 10:05, 33F