计算机工程与科学 ›› 2022, Vol. 44 ›› Issue (12): 2091-2101.
莫舒恒1,卢圣有2,黄聃2,卢宇彤2
MO Shu-heng1,LU Sheng-you2,HUANG Dan2,LU Yu-tong2
摘要: GNU Octave是一款数值计算软件,具有免费、开源以及几乎完全兼容MATLAB语言的优点。然而,Octave内置的基于LLVM的实验性即时编译器仅支持对少部分代码进行即时编译,无法有效解决Octave效率低下的问题。基于Octave即时编译器探究对Octave的性能优化方案,从工作原理角度出发,对该即时编译器整体工作原理和其中的类型推断系统进行分析;从工作现状角度出发,评估该即时编译器对Octave代码的适用范围和性能提升效果;针对该即时编译器的内置函数调用、索引运算与算术逻辑运算进行特性修复和功能新增,使Octave获得性能提升。实验结果表明,基于即时编译器的优化方案有效扩展了即时编译器的适用范围,为Octave代码执行带来56~283倍不等的性能提升。此外,总结了该即时编译器中存在的16类缺陷,对进一步优化Octave性能具有参考意义。