脚本语言执行相同任务的基准?

时间:2010-08-22 20:19:30

标签: php python ruby perl benchmarking

有谁知道在哪里可以找到关于人们用两种或更多脚本语言实现的任务的评论或报告,以查看哪种更适合特定的工作?我想知道哪种语言最适合哪种类型的操作,以便我可以充分利用它们。

“操作类型”可以是套接字,文件系统,逻辑评估,正则表达式或绘图。

我最感兴趣的是Python,PHP,Perl和Ruby。

3 个答案:

答案 0 :(得分:5)

有编程语言枪战: http://shootout.alioth.debian.org/ 虽然它可能无法衡量你正在寻找的东西。

然而,基准测试几乎肯定不会告诉你有关你所列出的那种高级想法的任何有用信息。对于那些东西,性能(如执行速度)几乎与编写代码的语言无关(至少对于您列出的语言集,所有这些都具有非常相似的执行模型),几乎所有如何构建代码。

如果您希望能够根据相关内容选择您列出的某种语言(针对特定任务),那么您应该问的问题是:

  • 对于您想要运行的平台,有哪些限制?您列出的所有语言都有大型运行时系统 - 解释器 - 这意味着如果您想在尚未安装它们的系统上使用它们,它们可能会有大量的部署成本。话虽如此,Python至少有'py2exe'和'py2app'可用于为Windows或Mac制作应用程序的可部署可执行文件 - 可能与您列出的其他语言类似。
  • 该语言的标准库中提供了哪些相关功能? (在这种情况下,所有列出的语言都有非常大的,有用的标准库)。
  • 您可以使用的外部库中有哪些相关功能?
  • 你使用这种语言有多舒服?

最后,如果执行速度在您的应用程序中非常重要,并且如果您发现即使使用所选语言选择适当的体系结构也无法达到所需的速度,那么您可以确定瓶颈并重新确定 - 在编译语言中实现,提供返回脚本语言的接口,以便将其集成到应用程序中。您列出的所有语言都支持此类本机代码扩展。

答案 1 :(得分:3)

我会看the programming tasks on Rosetta code

您应该能够找到您感兴趣的语言的惯用代码,然后在您期望的任何使用条件下进行基准测试。这使您不必自己编写测试,并且您经常会看到针对不同语言的有趣方法。

答案 2 :(得分:2)

最好的办法是为您感兴趣的特定任务创建自己的基准。选择您喜欢的语言,然后为您将使用的系统和您将要执行的任务编写基准。如果您非常关注速度,我还建议您查看各个操作以及如何在每种语言中优化它们(示例:参数顺序,内存使用情况......)