什么是最快的Scheme实现?

3

显然,这取决于你想要做什么:数值分析、线程、数据库等等。我看过一些基准测试;Larceny和Bigloo似乎是领先的。有没有Scheme的实现在几个不同的基准测试中表现得相当不错?有没有能够创建比SBCL生成的代码运行更快的方案?我不明白为什么SBCL应该如此快 - Scheme语言比Common Lisp简单得多!


4
几个月前你问过一个问题:"Scheme和CL哪个更快?",但问题已被关闭。那么你为什么需要最快的Scheme实现呢?提供一些关于你正在处理的问题的细节可能会有所帮助,因为不同的实现也有不同的内置库。 - okonomichiyaki
1
为什么不对它们进行基准测试并告诉我们你的发现呢? - erjiang
1
https://ecraven.github.io/r7rs-benchmarks/(repo:https://ecraven.github.io/r7rs-benchmarks/) - Lassi
3个回答

8

http://community.schemewiki.org/?Stalin

http://en.wikipedia.org/wiki/Stalin_(Scheme_implementation)

根据维基百科:

Stalin(STAtic Language ImplementatioN)是由Jeffrey Mark Siskind编写的一种积极优化的批处理整个程序Scheme编译器。它使用先进的流分析和类型推断以及各种其他优化技术来生成代码。 Stalin旨在用于生成优化的可执行文件。

编译器本身运行缓慢,几乎没有支持调试或其他良好特性。支持完整的R4RS Scheme,有少量且很少遇到的遗漏。与外部C库的接口很简单。编译器本身进行寿命分析,因此不会生成太多垃圾,但全局存储回收使用Boehm垃圾收集器。

看起来Stalin已经不再开发了。


7

在完全符合标准(至少符合R5RS)并且可以直接使用的Scheme方案中,Chez Scheme 必须是最快的。


Chez Scheme 是专有软件。 - bartolo-otrit
8
Chez Scheme不再是专有软件,它在Github上以Apache 2.0许可证的形式提供。 - Reynard

1
根据这些基准测试结果,看起来Chez Scheme、Gambit和Racket在速度方面大致持平,成为最快的Scheme。

基准测试指定了“安全模式”:在Chez Scheme中,使用compile-whole-program(跨库内联)和optimize-level 3(尽可能使用Fixnum procs)可以显著提高速度(根据我的经验,可达到3倍)。 - mnemenaut

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接