السلام عليكم

في هدا الكود

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

يعني أن وقت تحرير الذاكرة أبطئ بكثير من وقت الحجز ما السبب؟

أنا كنت أضن العكس لأنني أعتقد أن الحجز يتطلب عملية بحت عن مكان فارغ في الذاكرة عكس التحرير

المرجو التوضيح