在苹果为Mac设备选择自家的M1系列芯片以后,苹果面临一个比较大的市场问题:原本那些买着MacBook,装着Windows系统的星巴克气氛组成员无法装X了。因为M1芯片基于Arm指令集,和Intel x86指令集根本上不同,Mac也就和传统Windows说再见了。
现在的macOS操作系统已经不提供Bootcamp工具,也就无法给Mac电脑完美安装Windows系统了。不过好在微软开始部署Arm版Windows也好些年,《Arm的十年PC征程,和微软的“暧昧”》一文已经做过比较详细的解读。这就为M1版Mac电脑安装Windows on Arm系统提供了可行性。虽然此Windows就非彼Windows了。
著名的Parallels Desktop虚拟机程序就是这么干的。现在用Parallels可以在macOS系统中比较方便地安装Windows 11 on Arm系统。于是我们的这台M1版MacBook就装上了Windows,而且用起来还挺像那么回事。
本系列对比文章的最后一篇就来谈谈如果给M1版MacBook Air以虚拟机的方式装上Windows系统,还能不能完美加入星巴克气氛组(不是),或者说把Windows on Arm作日常之用是否可行。这是个挺有意思的话题,作为性能基准对比,我们同样拉来华为Matebook X Pro 2021笔记本,将Intel酷睿i7-1165G7作为性能和效率对比对象。
再次列出两台设备的基本配置:华为Matebook X Pro 2021,酷睿i7-1165G6,16GB RAM,512GB SSD(Windows 11);苹果Macbook Air 2020,苹果M1(7核GPU版),16GB RAM,256GB SSD(macOS 12.0.1)。
基本性能与效率探索
以下所有测试,M1均是在Parallels虚拟机中跑的,并不能代表M1的真实性能。为虚拟机配置的硬件资源为M1 CPU 8核全上,RAM分配12GB——因为16GB内存全部分配出来的话,原本的macOS系统可能就不稳定了。而且Parallels也并不推荐把8个CPU核心全部分配给虚拟机,程序默认只分配了4核心。我们手动强制分配了全部8个核心资源,尽可能令其性能全部发挥出来。(假定Windows 11 on Arm就作为MacBook Air的主力系统来用了)
所有测试只是期望呈现,现在的Mac如果要用Windows系统,实际表现会怎么样。另外我们从本次测试中,也顺便能够观察Windows on Arm的生态发展情况。
以Parallels工具在macOS(Monterey)之上装个Windows on Arm,性能必然是有折损的。但从我们的测试来看,Parallels的效率还挺高;M1芯片即便在操作系统上再加一层虚拟机,性能仍然很主流:
看测试结果之前还需要明确两点:
1.华为的这台Matebook笔记本受限于保守的系统设计和温控策略,并不能完整发挥酷睿i7-1165G7这颗芯片的全部性能,本系列的第一篇文章已经探讨过该话题;
2.Geekbench 5是目前为数不多原生支持Windows on Arm的基准测试工具之一。如此一来,M1即便是在虚拟机里面跑,性能发挥仍然相当不错——如上图。
这里高通骁龙8cx Gen 2的数据来自Linus Tech Tips。从Geekbench 5的测试结果来看,即便是让M1跑在虚拟机里,性能还是比Arm阵营的对手高出一大截。其单核性能虽然不及11代酷睿处理器(此处酷睿i7-1165G7的成绩也并非其满血性能),但比同在Arm阵营的骁龙8cx二代芯片高出近100%。
Geekbench 5中能够看到CPU指令集为AArch64
Geekbench 5这种接近原生的测试还是能够看出M1的彪悍。不过Windows on Arm的生态发展情况还相当初级,Windows on Arm毕竟不是传统的x86版Windows,跑更多传统Windows软件需要借助中间层的模拟器(emulator)。对于32位软件(x86),微软很早就推过WOW64模拟器。(有关WOW64模拟器实现细节,可点这里查看)
很多传统32bit x86应用因此就能够跑在Windows on Arm系统上。其基本结构如下图所示:
但针对64位传统应用(x64)的模拟器就迟迟没有推向正式版。2020年12月,微软面向Windows 10的Dev Channel开发者通道推送了x64模拟特性。微软此前提到过x64程序的模拟所需的工作更多。所以即便测试了1年,正式版Windows 10都没能等到x64程序的模拟特性。
去年11月,微软表示Windows 11 on Arm将会支持x64模拟。我们安装的Parallels模拟器内的Windows 11的确能够支持x64程序模拟。不过微软始终在说,x86、x64模拟优化工作在推进中。不同时间段的系统更新会看到旧程序运行效率的提升。我们的测试与其说是对比虚拟机+模拟器的M1和原生酷睿i7-1165G7,还不如说是对微软模拟器的考验……
而且事实上,微软的模拟器效率也远不及苹果Rosetta 2,带来的性能折损之惊人,也让人不大愿意在Windows on Arm上跑一般的x86/x64应用。比如Cinebench R23测试,目前就没有原生支持Arm64,所以只能跑在微软的x64模拟器上。
上面这个测试的有趣之处在于,M1本身是跑在Parallels虚拟机(Windows 11 on Arm)里面的,与此同时Cinebench R23应用又是跑在x64 emulator上的。这就造成了两重性能折损。
M1在这么折腾之后,单线程性能连11代酷睿的一半都不到。但即便如此,和同样跑在 emulator上的骁龙8cx Gen 2(而且还少了一层虚拟机)相比,还是好上不少的。
从Geekbench 5原生Arm64测试,和Cinebench R23的x64模拟测试结果来看,M1版Macbook Air在性能上,日常作为一台Windows on Arm电脑,似乎也挺不错,即便性能折损严重,但还是比Arm阵营的对手彪悍。当然在绝对性能上,和原生x86/x64支持的Intel版PC(Matebook X Pro 2021)跑Windows 11就不在一个水平线上了。
WoA生态的缓慢进展
上篇文章我们对Apple Silicon的macOS生态提出了质疑,但有比较才有伤害。Windows on Arm生态相比M1版macOS生态,那简直可以用悲惨来形容。一方面是Windows on Arm系统之上的原生Arm64应用很少。微软在这方面作为第一方自然非常积极,自家的大部分软件都已经有了Arm64(或Arm32)版,比如Edge浏览器、Office办公套装等。
但三方软件开发者就没那么积极了,很多软件厂商还在观望。即便是最初Windows on Arm发布之初就站台的Adobe,Arm64版的Photoshop、Lightroom更新进度也非常缓慢。要知道第一台Windows on Arm设备自诞生到现在,已经有4年多了。
微软的x86/x64 emulator效率又极其低下,比如说在Windows on Arm上安装x86早期版本的Photoshop,装是能装,用也能用,但使用体验堪称灾难——图片缩放一下卡顿到让人想摔桌子。而新版Photoshop CC 2022(及其他x86版Adobe全家桶),在我们这次测试中似乎因为某些问题已经无法安装(系统提示无法达到最低系统要求);Arm64原生版则因为Parallels独特的模拟路径,也无法通过Creative Cloud安装到虚拟机里……
谷歌好像是Windows on Arm生态里最不配合的开发者之一,Chrome浏览器到现在都没有面向Windows的Arm64版。来见识一下用emulator来跑浏览器,性能折损能达到多严重的程度:
从谷歌官网下载Chrome,谷歌只推荐x86(32位)版Chrome(而且正常安装也只能装上32位版)。我们尝试强制下个了x64版Chrome装在M1之上的Windows on Arm虚拟机上。针对Arm64原生支持的Edge浏览器,以及跑在模拟器上的x64、x86版Chrome,分别做WebXPRT 3网页测试。
Edge作为原生指令支持的浏览器,网页浏览的性能表现是完全让人接受的。M1此时即便整体跑在虚拟机上,性能也能达到酷睿i7-1165G7跑原生应用的将近80%。但一旦需要x86、x64 emulator参与,性能就立刻变得惨不忍睹。(而且这项测试里,x64 emulator性能更糟,这大概也是x64 emulator一直没有进入正式版的原因)
这个测试起码可以表明,Windows on Arm系统别用Chrome浏览器;以及可想见其他需要模拟器转译指令、非原生的程序,跑起来效率会有多差。
这种时候就能让人想起x86生态的好了…不过Arm原生支持好的应用,最终结果还是基本让人满意的。比如说微软Office套装——作为微软的第一方应用,满足大部分人办公需求还是没问题。
虽然上图这项UL Procyon生产力测试中,因为Parallels虚拟机的存在,M1的性能还是有折损,总体比Matebook X Pro上的酷睿i7-1165G7弱了大约20%,但至少是可用的了(这个表现应该也优于骁龙设备)。
(注:UL Procyon测试程序本身是x64程序,但这个测试是通过一系列宏命令来跑系统中的Office原生应用,所以x64指令转译的性能折损应该是相当有限的)
值得一提的是,如果观察系统任务管理器中Office软件进程的架构项目,会发现写着“ARM64(x64 compatible)”,和其他ARM64进程还不大一样。这应该是程序内部本身需要做x64兼容所致。有关这种混合二进制程序,可以参见这篇文章。从这一点也能看出,微软要做个Arm生态有多不容易。
图形性能与通用加速
如前文所述,由于Windows on Arm生态的发展缓慢,很多测试我们都无法进行。比如说Puget Benchmark这种测试Adobe媒体创作的工具,目前就不支持Windows on Arm(更不用说Parallels虚拟机上连Photoshop、Lightroom、Premiere Pro都装不上)。这就让Windows on Arm暂时告别严肃的媒体创作了。
另外PCMark 10、3DMark测试工具通通无法装到虚拟机上,我们尝试了各种办法似乎都不行。PerformanceTest这类测试,在跑3D图形测试项目的时候就会被迫停止。这可能也和Parallels虚拟机程序本身的设置有关。听说3DMark有些测试有原生图形支持,是可以跑在Surface Pro X之类的设备上的(比如3DMark Wild Life Extreme)。毕竟当涉及到图形性能的时候,虚拟机对GPU做过一次抽象之后,测试工具还要通过emulator再做一次抽象。所以对于“图形性能”,就只能以游戏来实测了:
Microsoft Store商店内有个“OpenCL和OpenGL兼容包”,在装完之后,某些原本不能跑的程序有机会跑起来。我们对Windows on Arm游戏生态现状还是有预料的。不过还是有游戏能跑起来的,比如说CS:GO,在720p分辨率下竟然跑得还可以(CS:GO为x86模拟)。
而且上图中《CS:GO》《古墓丽影:暗影》和《彩虹六号:围攻》在跑起来的时候,至少也会去用M1的GPU资源。在运行这些游戏时,会看到GPU资源占用率可以达到90%。只不过后两者还是卡成了PPT的水平。而且部分游戏存在大量贴图错误。
而更多的游戏是压根儿就无法启动,比如说《全面战争:三国》,始终停在启动画面无法进入游戏;《原神》能安装,但运行就闪退,没有任何提示。所以要玩游戏的话,x86生态仍然是不二之选。这种高层级生态构建,估计再过5年,Windows on Arm都难有起色。
至于GPU通用计算,就算有OpenCL兼容包,结果一样惨绝人寰。Blender(v2.93.1)无法对虚拟后的GPU做硬件加速支持(Blender当前版本对于Intel这边Iris Xe核显的支持似乎也很不好)。LuxMark(v3.1)倒是能跑,但结果也是相当惊悚。
上面这些测试很大程度上不是对M1芯片的考验,而是对Parallels虚拟机和Windows on Arm生态的考验。当然以上绝大部分测试是为了考察Windows on Arm效率而做的,毕竟很多测试在macOS生态下有原生或Rosetta 2支持的版本。这在前一篇文章中已经有过对比。
最后说说结论吧:虽然某些测试的效率低下不全然是Windows on Arm生态的锅,但至少现阶段来看Windows on Arm,这个系统大概也只能用来办办公。
往上说,M1版Macbook要装Windows是没问题的,收发邮件、浏览网页、看看视频(我们也测试了Handbrake——而且Handbrake是有Arm64原生支持的,但不知为何AVC转HEVC测试始终无法进行)都可接受,虽然性能相比x86这边还是有明显的不及。
而要搞更复杂的工作,比如媒体创作、轻度游戏,以及更多行业应用,在Windows操作系统下,Intel x86生态仍然是现阶段唯一的选择。所以华为前不久刚推向市场的平板PC二合一设备Matebook E新款,上一代还在用Arm处理器,这一代就转向了11代酷睿处理器,大概也是对Windows on Arm生态这些年发展的无能为力吧。
而且当Windows 11系统内部开推Android生态支持,像华为作为OEM的角色,又在与Intel合作共推Android在PC与手机上的协作共生,Windows on Arm的未来就显得更加难以预测了。
责编:Amy Wu