[問題] 是否有方法加快vector resize的速度
開發平台(Platform): (Ex: VC++, GCC, Linux, ...)
VC.NET 2008
程式碼(Code):(請善用置底文網頁, 記得排版)
long t1111 = clock();
vector<unsigned char> vecccc(2048*2048*4); //(1)
long t2222 = clock();
unsigned char* arrrr = new unsigned char[2048*2048*4];
long t3333 = clock();
long dt01 = t2222 - t1111;
long dt02 = t3333 - t2222;
printf("\n %d : %d\n",dt01,dt02);
delete[] arrrr;
debug: 40ms(vec) : 4ms(arr)
release: 11ms(vec) : 0ms(arr)
註:(1)的部分換成resize一樣很慢。
上網google跟爬文都沒有找到有效的解決方法。
想請問一下各為先進,有什麼小技巧可以解決這樣的效能差距嗎?
感覺都是動態配置記憶體,vector的效率卻差了十倍?
我的目的只是單純是想用vector的方式動態分配一個很大的陣列。
因為相關的函數都是用vector來傳值的,如果不行的話就要大改了。
想請問一下各位先進,有什麼技巧可以解決這樣的效能差距嗎?
以上,煩請指教。
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 220.133.45.115
※ 編輯: xtxml 來自: 220.133.45.115 (07/22 18:27)
→
07/22 18:35, , 1F
07/22 18:35, 1F
→
07/22 18:36, , 2F
07/22 18:36, 2F
→
07/22 18:37, , 3F
07/22 18:37, 3F
→
07/22 18:37, , 4F
07/22 18:37, 4F
→
07/22 18:38, , 5F
07/22 18:38, 5F
→
07/22 18:39, , 6F
07/22 18:39, 6F
→
07/22 18:39, , 7F
07/22 18:39, 7F
→
07/22 18:39, , 8F
07/22 18:39, 8F
→
07/22 18:43, , 9F
07/22 18:43, 9F
→
07/22 18:44, , 10F
07/22 18:44, 10F
→
07/22 18:46, , 11F
07/22 18:46, 11F
→
07/22 18:46, , 12F
07/22 18:46, 12F
→
07/22 18:47, , 13F
07/22 18:47, 13F
→
07/22 20:55, , 14F
07/22 20:55, 14F
推
07/22 21:16, , 15F
07/22 21:16, 15F
→
07/22 22:03, , 16F
07/22 22:03, 16F
→
07/23 12:11, , 17F
07/23 12:11, 17F
→
07/23 12:21, , 18F
07/23 12:21, 18F
→
07/25 03:12, , 19F
07/25 03:12, 19F
→
07/28 01:19, , 20F
07/28 01:19, 20F
→
07/28 01:20, , 21F
07/28 01:20, 21F
討論串 (同標題文章)
以下文章回應了本文:
完整討論串 (本文為第 1 之 2 篇):