Windows10号称是终极Windows,选取了一条迭代改良主义路线。这种设计是否能够成功需要时间的验证,在过去的两年中,Windows10的革新大概是成功的,不过也有很多Bug。很多人将Windows10系统称为“Bug10”,虽然太言过其实,但不可否认的是,Windows10确实经常会出现一些很诡异的Bug。
游戏中多核围观是常态
日前Google程序员BruceDawson就遇到了相对诡异的事情,谷歌为其一套Intel24核心48线程处理器、64GB内存、高档SSD组成的强大系统,按理说用来编程会快速闪电,但奇怪的是,在启动编译后,Windows10系统却卡得像一只蜗牛,鼠标几乎都动不了了。调出系统管理器查看,却发现无论CPU还是内存都并没有占满,只有大约50%。BruceDawson轻车熟路地启动Windows系统事件追踪工具ETW,结果发现Windows10在进程销毁方面存在一个严重的Bug。
由于第四代E526XXV4系列处理器最高原生24核心版本并没有发布,最强型号E52699V4只有22核心,而目前新一代的Skylake至强多核才刚刚发布,估计这位老兄采用的是双路E52673V3处理器,刚好满足24核48线程的条件。
简单来说,他面对的情况是——当一个Windows系统/程序进程需要关闭的时候,会通过单独一个线程进行处理,也就是说即便你有几十个处理器核心/线程,Windows系统也完全支持它们,但这时候Windows其实是单线程运行的。一般情况下这也没什么,但对于程序员来说,频繁启动、关闭大量进程是很常见的,于是悲剧就发生了,而且更糟糕的是,CPU核心数越多,问题反而越严重。
BruceDawson面临的就是,1个线程在拼命忙碌,其他47个都在围观……
进一步研究发现,这个Bug只在Windows10上存在,老版本的诸如Windows7反而没问题。