Я профилирую код игры, которую я написал, и мне интересно, как возможно, что следующий фрагмент вызывает увеличение кучи 4 кбайта (я профилирую с Heapshot Analysis Xcode) каждый раз, когда он выполняется:
u8 WorldManager::versionOfMap(FILE *file)
{
char magic[4];
u8 version;
fread(magic, 4, 1, file); <-- this is the line
fread(&version,1,1,file);
fseek(file, 0, SEEK_SET);
return version;
}
В соответствии с профилировщиком выделенная строка выделяет 4.00Kb памяти с помощью malloc
при каждом вызове функции, которая никогда не выпускается. Кажется, что это происходит с другими вызовами fread
вокруг кода, но это был самый эклектичный.
Есть ли что-нибудь тривиальное, которого я не хватает? Это что-то внутреннее, о котором я не должен заботиться?
Как примечание: я профилирую его на iPhone и скомпилировал как release (-O2
).