关键字的内联(Symbol)方法使用递归调用以获取一个有效的关键字实例。我认为它可以重写成一个 'for 循环'
来降低方法调用成本。
因此,我开发了此补丁并进行了一些简单的基准测试。在“ant jar”之后运行以下命令行三次:
java -Xms64m -Xmx64m -cp test:clojure.jar clojure.main -e "(时间 (dotimes (连接: n 10000000) (关键字 (str n))))"
补丁之前
"耗时:27343.827 毫秒"
"耗时:26172.653 毫秒"
"耗时:25673.764 毫秒"
补丁之后
"耗时:24884.142 毫秒"
"耗时:23933.423 毫秒"
"耗时:25382.783 毫秒"
看起来补丁让关键字的内联稍微快了一点。
补丁已附上并进行了测试。
谢谢。
附言。我已经签署了贡献者协议,我的电子邮件是[email protected]。