Кто узнаёт
картинку - поймет о чем речь.
Например, установлено Initial size не
4096MB как на картинке, а 16MB - мол файл подкачки нам нужен
раз в год, так что нечего им диск засорять. Maximum size 8192MB как на картинке.
Сценарий
следующий – предположим у вас 512MB оперативной памяти (т.е. эмитируем ситуацию, когда памяти нехватит). Вы пытаетесь выделить из кучи (HeapAlloc, malloc, new….) 1,5 GB памяти.
Отличие:
Windows XP/ Windows 8 – запрос удовлетворен, файл подкачки автоматически моментально
увеличивается до нужно размера.
Windows 7 – запрос не удовлетворен, потому что текущий файл подкачки +
оперативная память меньше требуемого блока. Если выделять по 1МБ с задержкой в
1ms и дать возможность
постепенно вырасти файлу подкачки до ~1.5 ГБ, то позже тот-же запрос на те-же
1.5 Г будет удовлетворен. (F…ck!!!)
Короче нельзя
семерке ставить маленький Initial Size. Это актуально и на Hyper-V виртуальной машине,
где оперативная память динамически добавляется менеджером по-необходимости.
Собственно на ней (W7 SP1 x64) проблема и вылезла.
Скажу спасибо, если кто-то найдет этому вменяемое объяснение. Например ссылку на MS knowledge article или еще что-то..
В этой ситуации фотошоп miserable fail :(
Немає коментарів:
Дописати коментар