话说这个题目看起来有点逼乎的味道?(
是这样,最近写程序的时候天天被傻逼杀软给搞到 access denied,要不就编译时间明显边长,于是花三天做了个测试。
因为主机情况过于复杂,无法在 VM 中成功重现 access denied,于是这里的测试主要指标就变成编译一个程序的耗时。
本机经不住许多折腾,于是运行在虚拟机中,配置记录如下:
Hypervisor: VMware Workstation Pro 15.5.1
Host OS: Windows 10 x64 Enterprise 1909
Host CPU: Shitel 8086k 6C12T @ 4.7GHz
Host Disk for VM: Toshiba TR200 (exclusive by VMware)
VM OS: Windows 10 x64 Enterprise 1903
VM CPU: 12 cores
VM Memory: 8GB @ 3000MHz
VM CinebenchR20: Multi-core 2904 pts, Single-core 385 pts
作为 CPU 性能的参考,虚拟机的 CinebenchR20 分数大概是在你的 7700k 和 8700k 之间,我边跑分边在 b 站看视频,所以该性能应该能比较好地体现摸鱼状态下电脑的可用性能。
对于 IO 来讲,特弱 200 虽然特弱,但是 VMware 有一个神秘的缓冲可以让他的 cdm 跑到 2000m/s,应该能比较好的体现开发环境,毕竟是独占状态,只跑这一个任务。
测试用例选用 rust 的编译过程,为模拟一个陌生 exe 执行编译器的条件,我用 go 自己写了一个小程序用来调用cargo
编译并计时。最后,为了提高程序的不可置信度,我写了一个 bat 执行 go 程序,并且将这所有的东西打成了自解压包。
rust 开发环境被预先安装在 vm 中,所需 crates 包的源码也已提前缓存完成。
为模拟正常环境,测试全程将联网运行。
测试过程分为三段,第一次编译,第二次编译,第三次编译,并且通过回滚快照再进行 1 次,收集共 6 组数据,用于判断耗时的变化规律和失败概率。
第一次的测试程序是 all-in-one,一次执行测试三次,第二次的测试程序则是三次手动执行。
说实在的,我不是很满意,没能重现我宿主机上出现 Access Denied 的情况,多半是因为宿主机情况过于复杂吧。
不过这个图表仍然能作为一个可行的性能指标来看。
Y 轴是编译耗时,单位 ms。
我傻逼了,用啥杀软,裸奔多好。
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.