Есть ли способ программно запустить исполняемый файл в фоновом режиме (т. Е. Без окон) без запуска связанного процесса conhost.exe?
Я пробовал такой код в процессе запуска, который порождает рабочие процессы:
var process = new Process();
process.StartInfo.FileName = executable;
process.StartInfo.Arguments = args;
process.StartInfo.UseShellExecute = false;
process.StartInfo.CreateNoWindow = true;
Любая помощь будет оценена.
Контекст:
Мы проводим нагрузочное и производительное тестирование. Для репликации наших крупных клиентских сред мы арендовали серверные мощности, чтобы позволить нам запускать тысячи виртуальных серверов, но они ограничены памятью (~ 300-500 МБ памяти на каждую виртуальную машину).
Сценарий заключается в запуске 100 процессов на каждую виртуальную машину. Комбинация исполняемого процесса размером ~ 1,3 МБ и процесса conhost.exe размером 4–5 МБ (в Windows Server Standard Edition core update 1803) делает невозможным запуск 100 процессов. Если бы мы могли удалить связанный conhost.exe, у нас был бы шанс.
Примечание: conhost намного меньше в среде Windows 7 (‹800 КБ), но мы должны использовать сервер Windows.
Тот же сценарий работает в Linux.