关于操作系统长时间运行后调用Process.GetProcesses()的效率问题
我现在开发的一个功能需要定时扫描正在运行的进程列表,以便于及时把意外退出的程序重新启动。
我使用Process.GetProcesses()获取操作系统当前运行的进程列表,在大多数的电脑上这并没有产生性能问题。
但是当我部署到一台长时间运行的服务器上时(已经连续运行147天,新开的PID已排到近百万),调用Process.GetProcesses()的处理时间竟然高达100毫秒,而一般情况下调用Process.GetProcesses()的时间消耗大概是几毫秒以内,这对我正在使用的系统性能造成了一定的影响。
不知道是否有谁可以告诉我该如何解决这样的一个问题?
谢谢!