杀软对于编译并执行场景的影响测试
## 起因
因为ide通常使用一个服务进程编译(访问大量文件)后马上运行程序,看起来就很像是释放然后执行,因此常见杀软常常(暂时)限制运行(并进行进一步的启发扫描等)导致Access Denied。
本文将测试相近情况下不同杀软的延迟现象严重程度,并作出一个结论(仅供参考)。
P.S. 只测试能用的杀软,对于某些界面贼jb难看中文字体还是宋体还杀我mactype的垃圾a系杀软直接排除。
## 目录
这里是~~[NeverDo](https://never.do)~~ ToDo List,每完成一项我都会将对应的条目替换成链接。
- [x] [准备测试基环境](#base-env)
- [x] [准备测试脚本](#test-case)
- [x] 设置测试子环境并进行子测试
- [x] [Base Line][day1]
- [x] [Kaspersky][day1]
- [x] [Windows Defender][day1]
- [x] [BitDefender][day2]
- [x] [GDATA][day1]
- [x] [Avira][day2]
- [x] [F-Secure][day2]
- [x] [Norton][day3]
- [x] [MalwareBytes][day3]
- [x] [ESET][day2]
- [x] [360及其TS][day3]
- [x] [火绒][day3]
- [x] [电脑管家及其国际版][day3]
- [x] [avast][day4]
- [x] [McAfee][day5]
- [x] [Dr.Web][day5]
- [x] [最终总结](#summary)
## Base Env
本机经不住许多折腾,于是运行在虚拟机中,配置记录如下:
> 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,应该能比较好的体现开发环境,毕竟是独占状态,只跑这一个任务。
## Test Case
测试用例选用 rust 的编译过程,为模拟一个陌生exe执行编译器的条件,我用go自己写了一个小程序用来调用`cargo`编译并计时。最后,为了提高程序的不可置信度,我写了一个bat执行go程序,并且将这所有的东西打成了自解压包。
rust 开发环境被预先安装在 vm 中,所需 crates 包的源码也已提前缓存完成。
为模拟正常环境,测试全程将联网运行。
测试过程分为三段,第一次编译,第二次编译,第三次编译,并且通过回滚快照再进行1次,收集共6组数据,用于判断耗时的变化规律和失败概率。
第一次的测试程序是all-in-one,一次执行测试三次,第二次的测试程序则是三次手动执行。
## Summary
说实在的,我不是很满意,没能重现我宿主机上出现Access Denied的情况,多半是因为宿主机情况过于复杂吧。
不过这个图表仍然能作为一个可行的性能指标来看。
图表已经更新为排除修正版,同时去掉了某主观轴。
Y轴为编译耗时,单位ms。现在Y轴数据从20000起跳,还请留意。
[day1]: https://note.bobo.moe/2019/12/avdt-day1.html
[day2]: https://note.bobo.moe/2019/12/avdt-day2.html
[day3]:https://note.bobo.moe/2019/12/avdt-day3.html
[day4]:https://note.bobo.moe/2019/12/avdt-day4.html
[day5]:https://note.bobo.moe/2019/12/avdt-day5.html
评论
发表评论