gpt4 book ai didi

performance - Clojure数字处理性能

转载 作者:行者123 更新时间:2023-12-03 12:16:14 27 4
gpt4 key购买 nike

我不确定这是属于StackOverflow还是属于Clojure Google组。但是小组似乎忙于讨论numeric improvements for Clojure 1.2,因此我将在这里尝试:

http://shootout.alioth.debian.org/具有许多针对各种语言的性能基准。

我注意到Clojure丢失了,所以我制作了n-body problem的Clojure版本。

我能够生成的最快的代码可以是found here,并且对它进行基准测试似乎表明,对数字进行处理Clojure是

  • 比Python / Ruby / Perl快10倍
  • 因数比C / Java / Scala / Ada慢约4
  • 与OCaml,Erlang和Go
  • 大致相当

    我对这种性能水平感到非常满意。

    我对Clojure大师的问题是
  • 在速度,代码简洁性或可读性(不牺牲速度)方面,我是否错过了明显的改进?
  • 您认为这一方面可以代表Clojure性能,另一方面可以代表Python / Ruby / Perl和Java / C?

  • 更新

    更多点胶 here的Clojure 1.1基准程序,包括n体问题。

    最佳答案

    这里不是大量的答复:),但显然有一些兴趣,所以我将尝试用过去几天学到的知识来回答自己的问题:

  • 使用1.1优化方法(Java原语和可变数组)比优化Java慢约4倍,这与它的速度差不多。
  • 1.2构造definterfacedeftype的两倍多,是Java的约1.7倍(+ 70%),与1.1相比,代码更短,更简单,更干净。

  • 这里是实现:
  • Clojure 1.1 approach
  • Clojure 1.2 approach

  • More details包括“经验教训”,JVM版本和概要分析屏幕快照。

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

    1.2测试使用了当前的master分支,我没有尝试任何新的数字分支。从我可以收集到的当前正在讨论的新想法
  • 可以使非优化数字更快
  • 可能会加速本基准
  • 的1.1版本
  • 可能不会加快1.2版本的速度,它已经尽可能接近“接近金属”了。

  • 免责声明:
  • Clojure 1.2尚未发布,因此1.2基准测试结果是初步的。
  • 这是有关物理计算的一个特定基准。它与浮点数运算有关,但与字符串解析,并发或Web请求处理等 Realm 的性能无关。
  • 关于performance - Clojure数字处理性能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3124344/

    27 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com