不同脚本语言完成相同任务的基准测试?
有没有人知道哪里可以找到一些关于人们用两种或更多脚本语言实现的任务的评测或报告?我想看看哪种语言更适合特定的工作。我想了解哪些语言最适合哪些类型的操作,这样我才能充分利用它们。
这里说的“操作类型”可以是网络连接、文件系统、逻辑判断、正则表达式,或者绘图。
我主要对Python、PHP、Perl和Ruby这几种语言感兴趣。
3 个回答
2
最好的办法是为你感兴趣的具体任务自己做一些基准测试。选择你喜欢使用的编程语言,然后为你要用的系统和要执行的任务写一些基准测试。如果你特别关注速度,我还建议你看看每种语言中的具体操作,研究一下如何优化它们(比如:参数的顺序、内存的使用等等)。
3
我建议你去看看Rosetta Code上的编程任务。
在那儿,你可以找到你感兴趣的编程语言的典型代码示例。然后,你可以在你预期的使用条件下进行性能测试。这样你就不用自己写测试了,而且还可以看到不同语言有趣的实现方式。
5
这里有一个编程语言的比较网站:http://shootout.alioth.debian.org/,不过这个网站可能没有测量你想要的所有内容。
不过,基准测试几乎不会告诉你关于你提到的高层次想法的有用信息。对于这些内容,性能(也就是执行速度)和代码使用的语言几乎没有关系(至少在你列出的那些语言中,它们的执行模型都很相似),而是和代码的结构关系更大。
如果你想根据一些相关的因素来选择你列出的语言(用于特定任务),你应该考虑以下问题:
- 你想运行的系统有什么限制?你列出的所有语言都有比较大的运行时系统——解释器——这意味着如果你想在没有安装这些语言的系统上使用它们,可能会有较高的部署成本。不过,Python至少有“py2exe”和“py2app”,可以用来为Windows或Mac制作可部署的可执行文件,其他语言可能也有类似的工具。
- 这个语言的标准库提供了哪些相关功能?(在这方面,所有列出的语言都有非常大且有用的标准库)。
- 有没有外部库提供你可以使用的相关功能?
- 你对使用这个语言有多熟悉?
最后,如果执行速度在你的应用中真的非常重要,并且你发现即使选择了合适的架构也无法达到所需的速度,那么你可以找出瓶颈,并用一种编译语言重新实现这个部分,同时提供一个接口让它可以和脚本语言集成。你列出的所有语言都支持这样的本地代码扩展。