#include <iostream>int main(){ // XP, VS 2008 Express, свойства проекта по умолчанию // Объем используемой памяти в диспетчере задач: //int blockSize = 1; // 33128 KB //int blockSize = 10; // 41168 KB int blockSize = 100; // 129316 KB // Вывод: нет выравнивания по страницам памяти // А лишние 30 MB видимо используются для учета 1 млн. блоков for(int i = 0; i<1000*1024; ++i) malloc(blockSize); std::cin.get(); return 0;}
#include <iostream>int main(){ // XP, VS 2008 Express, свойства проекта по умолчанию // Объем используемой памяти в диспетчере задач: //int blockSize = 4096-1; // 42356 КB //int blockSize = 4096; // 42356 КB //int blockSize = 4096+1; // 42436 KB //int blockSize = 4096+8; // 42436 KB //int blockSize = 4096+9; // 42524 KB // Вывод: нет выравнивания по страницам памяти, но адреса выравниваются к границе 8 байт for(int i = 0; i<10*1024; ++i) malloc(blockSize); std::cin.get(); return 0;}