У меня есть служба Windows, которая просто отслеживает определенные события. После запуска служба выполняет процесс (.exe).
Моя проблема: на сервере Windows 2003 это отлично работает. ЦП для исполняемого файла загружается примерно на 20% и работает с разумной скоростью.
На Windows Server 2008 он работает в 3 раза медленнее (по крайней мере), а ЦП для исполняемого файла составляет около 1%, если все сделано таким же образом. Однако при простом запуске исполняемого файла (без того, чтобы его выполняла служба прослушивания), он работает так же быстро, как и обычно на сервере Windows Server 2003.
Похоже, это проблема, поскольку Windows Server 2008 не дает такой же приоритет исполняемому файлу, но в диспетчере задач не видно ничего другого (кроме использования ЦП). Также может быть что-то совсем другое.
Есть идеи, что могло бы решить эту раздражающую проблему?
Вы явно указали приоритет процесса при отправке для создания нового процесса CreateProcess()
- параметр dwCreationFlags
-- если NORMAL_PRIORITY_CLASS
(по умолчанию) указано, что он наследуется от родительского процесса?