Я думал, что понял, как MacOSX управляет памятью, но недавно я был озадачен его производительностью. Вот ситуация:
- У меня совершенно новая система Core i7 с 8 ГБ физической памяти под управлением MacOSX 10.6.7. Есть несколько запущенных приложений, регулярно занимающих часть памяти - Safari, Mail, Xcode, Terminal и т. Д.
- Мне нужно запустить три 64-битных процесса параллельно, каждый из которых использует около 2000M реальной памяти.
- Хотя проводная память остается ниже 1000 МБ (т. Е. У меня доступно более 7 000 МБ для процессов), я наблюдаю интенсивную работу по подкачке страниц, приводящую к очень низкой производительности трех запущенных мной процессов с интенсивным использованием памяти.
- По-видимому, у меня не хватает свободной оперативной памяти, так как указанная неактивная память остается около 2500 МБ, а активная память не поднимается выше 5000 МБ.
Может кто-нибудь дать мне понять, почему MacOSX не освобождает неактивную память для процессов, которые в ней нуждаются, вместо этого прибегая к подкачке страниц? Кроме того, есть ли какой-нибудь правильный способ повлиять на управление памятью системой?