Windows 7 32 位,最新版本,Intel i7 860。(由于某种原因,公司到处都运行 32 位 Windows。)我尝试尽可能更新所有主板驱动程序等。
我的机器出现了与多线程相关的性能问题(或者我是这样认为的)。
举个例子(也是我最常看到的例子,但它也出现在其他程序中):ProteoWizard 是一个用于质谱文件的文件转换工具。我可以添加一个文件列表,它将尝试并行处理最多 8 个文件(四核 x 2 个线程/核)。如果我选择 1 到 6 个文件,我会启动该过程,它会直接完成。如果队列中有 >=7 个文件,转换会进行到 ~20%,然后卡住 15 秒,然后再次继续,总是以几% 的“块”进行,然后再次卡住。
在进程卡住期间,CPU 占用率为 1%。RAM 没有限制,可能为 70% 左右,并且不会上升。
在其他甚至更慢的机器上我没有遇到同样的问题。
在其他情况下,计算机也会停留在 1% CPU 而无任何操作,但对于多线程来说,这种情况最为常见。
我应该去哪里寻找问题?
系统信息截图显示问题http://i.minus.com/ibtjBN8RCsl7UV.png
编辑:查看 Process Explorer 的此屏幕截图;没有任何东西处于极限。CPU 平稳,RAM 稳定在 60% 左右,I/O 平稳,GPU 平稳,网络平稳,磁盘平稳。您可以准确看到进程运行良好到什么程度,以及在何处停止运行。起初,8 个线程中有 2 个继续工作,然后它们也停止运行。
答案1
我怀疑是你的机器存在特定冲突。
我发现您知道 Sysinternals 工具。尝试进程监视器。让它运行并请求 > 7 队列。记下卡顿的时间。查看 procmon 日志,尤其是针对文件或网络打开到格式错误的路径。存在最终释放但会阻塞整个系统的超时。