Я написал этот кусок кода:Почему визуальные студийные диагностические инструменты демонстрируют значительное использование памяти?
#include "Colour.h"
int main(int argc, char** argv) {
//sizeof(Colour) = 3
Colour* data = new Colour[8 * 8];
for (int y = 0; y < 8 * 8; y++)
{
data[y] = Colour::WHITE;
}
}
В этом примере цвет является структурой, которая составляет три байта большого
Таким образом, я бы ожидать, что эта программа выделит 8 * 8 * 3 = 192
байт. Но в панели диагностических инструментов показано использование 889 kB
?
Что странно, когда я копать немного глубже, путем создания снимка памяти, он показывает размер кучи 71kB
. Но при просмотре источника он показывает только одно распределение размера 192 байта
Что происходит? Возможно ли, что он распределяет всю эту память для фрейма стека?
Ваше само приложение потребляет память тоже. Посмотрите размер выходного файла .EXE. – Icemanind