Re[2]: Про дебаг
От: remark Россия http://www.1024cores.net/
Дата: 25.07.06 11:55
Оценка:
Здравствуйте, Erop, Вы писали:

E>Здравствуйте, xexe2, Вы писали:


X>>Уважаемый ол, чему же именно равен размер объекта в куче?


E>могу поделиться своими отрывочными воспоминаниями о кучах.


E>1) когда ты пишешь что-то типа new MyType, то в кучу приходит запрос выделить тебе sizeof( MyType ) байт памяти.



Для полноты картины можно ещё написать про дебаг.
Под дебагом менеджер памяти обычно выделяет ещё немного больше памяти, что бы перед объектом и после объекта записать по несколько байт неким магическим числом.
При освобождении объекта менеджер проверяет не изменились ли эти магические числа перед и после объекта, это позволяет более менее эффективно отлавливать всякие записи за пределы буферов и расстрелы памяти.
Т.о. в дебаге менеджер выделяет немного больше (зависит от конкретного менеджера, msvc, если память не изменяет, писал толи по 3 толи по 4 байта перед и после блока памяти) и если в релизе объекту хватало блока памяти в 16 байт, то в дебаге ему вполне вероятно уже будет нужно больше, например блок в 32 байта.



1024cores — all about multithreading, multicore, concurrency, parallelism, lock-free algorithms
Re[3]: Про дебаг
От: mr_jek  
Дата: 25.07.06 13:55
Оценка:
Вот например некий господин провел исследования на тему что же рождает gcc:
здесь
и общая картина:
здесь
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.