发布日期:2019-04-02 作者:小白系统 来源:http://www.03727.com
许多人将win 7系统称为“Bug10”,虽然太言过其实,但不可否认的是,win 7确实经常会出现一些很诡异的Bug。
来看看Google程序员Bruce dawson的遭遇。
公司为他配备了一套intel 24核心48线程解决器、64GB内存、高档ssd组成的强大系统,按理说用来编程会快速闪电,但奇怪的是,在启动编译后,win 7系统却卡得像一只蜗牛,鼠标几乎都动不了了。
调出系统管理器查看,却发现无论Cpu还是内存都并没有占满,只有大约50%。
Bruce dawson轻车熟路地启动win系统事件追踪工具ETw,后果发现win 7在进程销毁方面存在一个严重的Bug。
容易来说,当一个win系统/程序进程需要关上的时候,会通过单独一个线程进行解决,也便是说即便您有几十个解决器核心/线程,win系统也完全支持它们,但这时候win其实是单线程运行的。
一般情况下这也没什么,但对于程序员来说,频繁启动、关上大量进程是很常见的,于是悲剧就发生了,而且更糟糕的是,Cpu核心数越多,问题反而越严重。
Bruce dawson面临的便是,1个线程在拼命忙碌,其他47个都在围观……
进一步研究发现,这个Bug只在win 7上存在,老版本的诸如win 10反而没问题。
Bruce dawson还写了一篇全面的分析文章,感兴致的可以戳这里。