当前位置:  开发笔记 > 编程语言 > 正文

Clojure数字运算表现

如何解决《Clojure数字运算表现》经验,为你挑选了1个好方法。

我不确定这是属于StackOverflow还是属于Clojure Google小组.但该小组似乎正在忙着讨论Clojure 1.2的数字改进,所以我会在这里尝试:

http://shootout.alioth.debian.org/为各种语言提供了许多性能基准.

我注意到Clojure丢失了,所以我制作了一个关于n体问题的Clojure版本.

我可以在这里找到我能够生成的最快的代码,并且对它进行基准测试似乎是说数字运算Clojure是

因果〜比Python/Ruby/Perl快10倍

因子比C/Java/Scala/Ada慢4倍

与OCaml,Erlang和Go大致相同

我对这种性能表现非常满意.

我对Clojure大师的问题是

无论是在速度方面还是在代码简洁性或可读性方面(不牺牲速度),我是否都有明显的改进?

您是否认为这一方面代表了Clojure性能与Python/Ruby/Perl和另一方面Java/C?

更新

对于枪战更多的Clojure 1.1基准程序在这里,其中包括正体问题.



1> j-g-faustus..:

这里没有大量的回复:)但显然有些兴趣,所以我会尝试用我过去几天学到的东西来回答我自己的问题:

使用1.1优化方法(Java原语和可变数组)比优化Java慢4倍,速度和它一样快.

1.2构建definterfacedeftype快两倍多,内〜1.7倍来的Java(+ 70%)比为1.1短,更简单和更干净的代码.

以下是实施:

Clojure 1.1方法

Clojure 1.2方法

更多细节,包括"经验教训",JVM版本和剖析截图.

从主观上讲,与优化1.1相比,优化1.2代码是轻而易举的,因此对于Clojure数字运算来说这是一个非常好的消息.(其实接近惊人的:)

1.2测试使用了当前的主分支,我没有尝试任何新的数字分支.从我可以收集目前正在讨论的新想法

可以使非优化数值更快

可能会加速这个基准测试的1.1版本

可能不会加速1.2版本,它已经像它可能获得的那样"接近金属".

免责声明:

Clojure 1.2尚未发布,因此1.2基准测试结果是初步的.

这是物理计算的一个特定基准.它与浮点数运算相关,但与字符串解析,并发或Web请求处理等领域的性能无关.

推荐阅读
刘美娥94662
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有