LINUX.ORG.RU

История изменений

Исправление xaizek, (текущая версия) :

с чего это система вдруг что-то зануляет?

С того, что POSIX предписывает:

MAP_ANONYMOUS
       The mapping is not backed by any file; its contents are initialized to zero.

А так как malloc()/calloc() дёргает mmap() для больших размеров, то и зануляет.

Другой источник памяти это sbrk(), который тоже зануляет.

Одна из причин — безопасность: процесс не должен получить доступ к старым данным других процессов или системы.

И это кстати куда быстрее ручного зануления, так как ядро может занулять страницы в фоне и отдавать процессам по необходимости из пула пустых страниц.

Исходная версия xaizek, :

с чего это система вдруг что-то зануляет?

С того, что POSIX предписывает:

MAP_ANONYMOUS
       The mapping is not backed by any file; its contents are initialized to zero.

А так как malloc() дёргает mmap() для больших размеров, то и зануляет.

Другой источник памяти это sbrk(), который тоже зануляет.

Одна из причин — безопасность: процесс не должен получить доступ к старым данным других процессов или системы.

И это кстати куда быстрее ручного зануления, так как ядро может занулять страницы в фоне и отдавать процессам по необходимости из пула пустых страниц.