- 作者:佚名
- 时间:2017-07-13
想象一下,使用支持超线程,64GB RAM和快速固态驱动器的24核处理器摇摆系统。 漂亮的弧度设置,对吧? 最后你会期望的是性能是一个问题,但是对于拥有这样一个配置的工程师来说,这不足以阻止他的鼠标发展起来,有时甚至几秒钟冻结。 事实上,拥有这样一个繁重的CPU可能实际上加剧了这个问题。 怎么会这样?
真正的罪魁祸首是Windows 10,特别是由Google的程序员发现的操作系统中的“严重的进程破坏性能错误”。 布鲁斯·道森在一篇冗长的博客文章中详细描述了他采取的步骤,以跟踪导致他的鼠标窒息和失速的原因。
首先跳起来似乎是一个兔子洞,最终导致他进入一个名为NtGdiCloseProcess的Windows函数,它负责退出进程。
“过程创建是CPU限制的,因为它应该是。然而,进程关闭在最初和最后都是CPU绑定的,但是在中间(大约一秒钟)它是序列化的时间很长,只使用其中之一系统上的八个超线程,因为1000个进程与NtGdiCloseProcess中的单个锁打交道,这是一个严重的问题,这个时间表示程序挂起并且鼠标移动挂起的时间 - 有时这个序列化时间长了几秒“道森解释说。
这不是普通用户可能遇到的问题。然而,对于使用大量流程的程序员来说,这是一个令人讨厌的问题,就像道森所说的那样。 Chrome是一个非常大的应用程序,涉及到快速连续地销毁大量处理器。而且由于这个bug的工作原理,系统中的内核和线程越多,这种副作用就越差。
道森说这不是Windows 7中的一个问题。对于微软来说,这不是一件好事,因为它尽可能地尽可能多地获得升级到Windows 10.Dawson已向微软报告错误,目前调查事项。