السلام عليكم
في هدا الكود
t = time(0);
for (size_t i = 0; i < 100000; i++)
tab[i] = new(int);
printf("new: %f\n", difftime(time(0),t));
t = time(0);
for (size_t i = 0; i < 100000; i++)
delete tab[i];
printf("delete: %f\n", difftime(time(0), t));
كانت النتيجة كالتالي
new: 0.000000
delete: 5.000000
وتجربة أخرى أعطت
new: 9.000000
delete: 552.000000
تقريبا نفس النتيجة باستخدام malloc/free
يعني أن وقت تحرير الذاكرة أبطئ بكثير من وقت الحجز ما السبب؟
أنا كنت أضن العكس لأنني أعتقد أن الحجز يتطلب عملية بحت عن مكان فارغ في الذاكرة عكس التحرير
المرجو التوضيح
التعليقات