لماذا عملية تحرير الذاكرة بطيئة جدا بالنسبة للحجز؟

السلام عليكم

في هدا الكود

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

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

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

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


التعليق السابق

مادا تعني ؟

هل يتم تصفير الداكرة بعد تحريرها ؟؟؟