Windows 服务正在执行可执行文件

Windows 服务正在执行可执行文件

我有一个 Windows 服务,它只是监听某些事件。一旦触发,该服务就会执行一个进程 (.exe)。

我的问题:在 Windows Server 2003 上,这个功能运行良好。可执行文件的 CPU 占用率上升到约 20%,并且运行速度合理。

在 Windows Server 2008 上,如果以同样的方式执行,其运行速度至少会慢 3 倍,并且可执行文件的 CPU 占用率约为 1%。但是,只需运行可执行文件(无需侦听服务),其运行速度与在 Windows Server 2003 上一样快。

这似乎是 Windows Server 2008 未赋予可执行文件相同优先级的问题,但在任务管理器上看不到任何不同(CPU 使用率除外)。也可能是其他原因。

有什么想法可以解决这个恼人的问题吗?

答案1

当您调度创建新进程时,您是否明确指定了进程的优先级CreateProcess() - 参数dwCreationFlags- 如果NORMAL_PRIORITY_CLASS指定了(默认),它会从父进程继承吗?

相关内容