Передо мной такая задача, нужно запустить на 1 компьютере по масимуму клиентов игры. Но чтобы не было тормозов и т. п. При этом никаких ресурсов игры не задействуется, кроме внутриигрового чата. Проблему я решил просто, нужно всю неиспользуемую память в данный момент сбросить в своп, и тогда вместо 400МБ будет нужно максимум 50-60 МБ физической памяти, без всяких тормозов и лагов. Делаю я это с помощью TotalCommander, там есть такая функция в диспетчере задач. http://i057.radikal.ru/1009/aa/0580a5aa042f.jpg После такой обработки на компе можно запустить в 4 раза больше клиентов без всяких тормозов Теперь моя задача это автоматизировать, а как - я не знаю, скорее всего там одна какая то WinApi вызывается. Буду очень благодарен если вы подскажете название этой функции, я ничего не нашёл к сожалению. Если кто найдет/сделает мне готовый пример на AutoIt даю пару сотен WMR. Можн на любом другом языке, лишь бы работало в консоли. В крайнем случае может быть есть консольная программа/стандартая виндовая команда для этого ICQ: 309765
Когда-то использовал такой код для освобождения оперативы, при желании можешь консольную прогу сделать сам: Code: procedure TrimWorkingSet(PID: Integer); var MainHandle: THandle; begin if Win32Platform = VER_PLATFORM_WIN32_NT then begin MainHandle := OpenProcess(PROCESS_ALL_ACCESS, false, PID); SetProcessWorkingSetSize(MainHandle, DWORD(-1), DWORD(-1)); CloseHandle(MainHandle); end; end;
Большое спасибо, сразу всё нашлось. http://www.autoitscript.com/forum/index.php?showtopic=13399 Апишка называется EmptyWorkingSet, конечно с таким названием фиг найдешь)