Провёл эксперимент.
Написал на VB6 программку, которая три раза в секунду выделяет 10 Мб памяти.
Один экземпляр такой программы просто исчерпал всё своё свободное 2 Гбайтное адресное пространство, и стал выдавать Out of memory. И это вообще абсолютно никак не повлияло на то, как работает систему. Проблемы даже близко не было. График использования файла подкачки:
Хорошо. Одного экземпляра явно мало, истратив всё место в своём АП, он отнимает у системы только чуть меньше, чем 2 Гб памяти. А файл подкачки существенно больше, он начинает расти, когда его начинает нехватать, да и никаких эффектов, близких к тем, на которыя я жалуюсь, нет.
Ладно. Запускаю сразу 10 экземпляров свою программу. Итак, 10 экземпляров в сумме каждую секунду отнимают у системы 100 Мб памяти. Изначально маленького файла подкачки начинает нехватать. Максимальный размер, до которого может вырасти ФП у меня установлен где-то около 7 Гб. А 10 экземпляров могут отнять у системы максимум 20 Гб памяти.
Что я увидел? Во-первых, со временем работа системы
превратилась в слайд-шоу. Реакция на действия происходила максимум раз в две секунды. Я с трудом вообще потом закрыл через диспетчер задач эти 10 жрущих пройессов.
Но!. Первое. Когда ФП вырос до своего максимального размера, я увидел то сообщение, о котором я говорил. Второе. Так и не удалось добиться того эффекта, о котором я говорил.
Скриншот:
Итак. Даже если 10 процессов отжирают 100 мб памяти подкачки каждую секунду. Даже файл подкачки дорастает до максимальных (в моём случае) 7 гб и истрачивается на 100 процентов.
Система работает как слайд-шоу, но работает абсолютно стабильно.В случае же моего бага, всё совсем наоборот. Новые окна не создаются, ресурсы не выделяются. Но файл подкачки не дорастает до максимальных 7 Гб. Он имеет размер где-то 2 Гб, истрачен на 50 процентов и никаких соообщений и балон-тул-типов из трея (как на скриншоте) не появляется.