在循環的每次迭代中分配堆內存的大塊是否會有明顯的性能損失?當然,我在每次迭代結束時都會釋放它。在循環內部分配內存vs外部循環
另一種方法是在進入循環之前分配一次,在所有迭代中重複使用它,並最終在退出循環後釋放它。請參閱下面的代碼。
// allocation inside loop
for(int i = 0; i < iter_count; i++) {
float *array = new float[size]();
do_something(array);
delete []array;
}
// allocation outside loop
float *array = new float[size]();
for(int i = 0; i < iter_count; i++) {
do_something(array);
}
delete []array;
是的,Aamir應該只是進行測試。他已經寫了上面的測試代碼。無需推測 - 只需嘗試一下。科學! – 2010-08-05 05:53:18