Я запускаю следующий код в Borland Builder C++ 6 и вижу увеличение памяти, используемой программой в Memory (Private Working Set) диспетчере задач Windows, что, я считаю, является утечкой памяти.
for (int i = 0; i < 100000; i++)
{
try {
int n = 0;
int r = 1 / n; //division by zero
}
catch (EDivByZero& e) {}
}
Я попытался заменить диспетчер памяти Builder C++ по умолчанию на FASTMM4
, но вижу то же поведение. Это из-за утечки памяти или фрагментации памяти, потому что я путаюсь между ними. Я считаю, что в обоих случаях программа должна выгружать виртуальную память на диск, что увеличивает используемую память.
Глядя на виртуальную память, можно провести различие между утечкой и фрагментацией, но как это сделать? Есть ли инструмент в Windows для проверки?