关键字的内联(Symbol)方法使用递归调用以获取有效的关键字实例。我认为它可以重写为 'for 循环' 来减少方法调用开销。
。
因此,我开发了此补丁,并进行了一些简单的基准测试。在'ant jar'后运行以下命令行三次
java -Xms64m -Xmx64m -cp test:clojure.jar clojure.main -e "(time (dotimes (link: n 10000000) (keyword (str n))))"
修复前
"经过时间:27343.827 毫秒"
"经过时间:26172.653 毫秒"
"经过时间:25673.764 毫秒"
修复后
"经过时间:24884.142 毫秒"
"经过时间:23933.423 毫秒"
"经过时间:25382.783 毫秒"
看起来修补后的关键字内沿线速度提高了。
补丁已附上并进行了测试。
谢谢。
附言:我已经签署了贡献协议,我的电子邮件是[email protected]。