知识卡片
用简化原型先验证可行性再投入完整工程
内容
面对能否用纯Java写速度可用的x86模拟器这个未知,团队没直接扎进真实x86指令集,而是先做一个只有13条指令、2个寄存器的极简Toy处理器测速,逐步应用消除、内联等优化,把性能从比C慢两个数量级提升到接近本机代码。确认技术路线原则上可行后,才投入复杂得多的完整x86模拟工作,避免在验证不了可行性时就砸入巨大工程资源。
参考来源
- 位置:《架构之美》第9章《JPC:一个纯Java的x86 PC模拟程序》9.2节《概念验证》"潜在的处理器性能测试"(源文件:程序之美系列套装(6册)团队之美、项目管理之美、架构之美、数据之美、测试之美、安全之美/_epub-src/OEBPS/Text/part0198.xhtml)
- 结论依据:原文明确"为了估计使用各种模拟策略后能获得的潜在性能级别,作为一个简单的模型,一个'Toy'处理器发明了出来……如果JPC在应用了所有的编程技巧后的最优结果是以1%的速度运行,那么,这个项目将是不值得做的",并给出从8000毫秒逐步优化到80毫秒(与本机程序持平)的完整过程。
- 原始内容:为了估计使用各种模拟策略后能获得的潜在性能级别,作为一个简单的模型,一个"Toy"处理器发明了出来……通过适当的运行时编译(这并不是非常复杂),一个Java模拟程序可以以和本地硬件相同的速度运行这个Toy本机代码。