什么是JVM上性能最高的lisp

Mar*_*rko 11 lisp performance scheme jvm clojure

JVM上性能最高(最快)的lisp实现是什么?通过lisp实现,我考虑了lisp系列中任何语言的所有实现,如Common Lisp,Scheme,Clojure,......

我知道使用类型提示可以很快地制作Clojure,ABCL通常不被认为是快速的.我没有在JVM上使用任何Scheme的经验,但听说Kawa也很快.

nic*_*kik 12

使用Clojure,你可以达到Java的速度(当然有类型提示),你不能比java更快(在一些非常罕见的情况下执行).我不知道其他的lisps可能是相同的速度,但不是更快.

所以说关于标准呼叫速度等等.

Clojure的数据结构并不总是尽可能快,但真正弥补了其他属性,如线程安全,不可变和快速读取.

为了使数据结构更快,Rich发明了瞬态,使它们变得可变,它们仍然可以正常工作(并且速度更快),并且他已经在开展下一个大事了(阅读有关新兴语言阵营的富人讲话) .

使用clojure编写并发代码要容易得多,这样才能真正导入以生成快速程序.

接下来就是数学.JVM上有三个级别的速度.具有盒装类型的数学,具有溢出检查的原始类型,或没有溢出检查的类型.Clojure提供所有这些,所以没有限制.

接下来就是你可以用多快的速度使用Java,如果你必须使用你不会表现得很好的包装器,并且在大多数JVM语言中经常使用java调用.要在clojure中实现clojure,clojure需要添加一个低级构造,以便您可以在没有任何开销的情况下与Java交互.

因此,clojure与JVM上的一样快.

PS

协议就像真正快速的多方法一样不是通用的,但是发送速度足以在clojure核心中使用它们(因此不再依赖于java).看起来很酷.


Art*_*ldt 9

虽然和其他一些似乎表明显而易见,但并不是很多好的数据.在执行非不可变任务时,不可用语言会受到轻微影响,并且在执行高度并行任务时,非不可变语言会受到影响.

在考虑这些问题时,有必要考虑"故障恢复选项".对于你的代码的任何部分,Clojure可以回退到java,探查器告诉你的不是它的威力.

简而言之:我投票clojure :)