网络编程语言基准?

时间:2009-10-06 15:10:30

标签: performance web-services web-applications benchmarking

我认为随着越来越多的编程使用类似的工具和技术进入网络,有没有人为编程语言提供一套好的基准测试?

我认为服务器端语言,如Java,PHP,ASP.net和C#是最重要的。虽然它可能是C或perl之类的东西,但我不想去那里因为它不是主流甚至是快速的。

当我购买新CPU时,我可以对浮点数,整数和多任务数进行基准测试。我可以处理渲染时间等问题。

我认为有人可以为简单的编程任务和实际的Web服务方案开发标准工作台。最好是独立的组织。当然,您总是可以调整代码以获得性能,但我说的是简单的事情,可以在每种语言中完全相同。我打赌它也可能很强大。

在可扩展性方面,性能将成为Web语言的一个问题。我想知道一种语言,或者更好的是,它的最新版本是否与竞争对手相媲美。

还有人这样做,还是我应该自己创业?

编辑:是的,我知道基准测试是主观的,对于网页来说更是如此。我没有说它现在很容易,甚至是不必要的。显然,在“孤岛危机”和“孤岛惊魂”中对我的视频卡进行基准测试是主观的,但它是一个有用的真实世界测试。这就是我的目标,也是主流语言。如果表现成为未来的焦点,我们能否看到C的复苏?

5 个答案:

答案 0 :(得分:2)

服务器端语言some benchmarks out there comparing a lot

  

I've always享受分形,并且好奇脚本语言是否适合任务。我为我的测试写了一个非常简单的Mandelbrot集合生成器。我尝试以每种语言大致相同的方式编写每个程序,以进行合理的性能比较,而不是针对每种语言进行优化。

     

以下是在我的867 mhz Powerbook G4上运行的结果。越短越好。请注意,以下基准测试并不科学,只是为了满足我的好奇心。您的里程可能会有所不同。

     

随时将端口发送给任何其他语言。程序应以“Elapsed%0.2f”的形式打印底部经过的时间(以秒为单位)。如果可以,请包含在MacOS X上构建的说明。

Language                Time    Relative Speed
C gcc-4.0.1             0.05 seconds     1.00 x
ocaml compiled 3.09.2   0.05 seconds     1.00 x
SBCL 1.0.2              0.13 seconds     2.55 x
Java 1.4.2              0.40 seconds     8.00 x
Io 20070410 Vector      1.40 seconds     28.09 x
Lua 5.1                 1.50 seconds     30.00 x
ocaml bytecode 3.09.2   3.76 seconds     75.15 x
Python 2.5.1            9.99 seconds     199.80 x
Ghostscript 8.51        11.66 seconds     233.12 x
Perl 5.8.6 Optimized    12.37 seconds     247.34 x
TCL 8.4 Optimized       16.00 seconds     320.00 x
Perl 5.8.6              21.75 seconds     435.00 x
PHP 5.1.4               23.12 seconds     462.40 x
Javascript SpiderMonkey v1.6 31.06 seconds     621.27 x
Ruby 1.8.4              34.31 seconds     686.18 x
Emacs Lisp              47.25 seconds     945.00 x
Applescript             71.75 seconds     1435.00 x
Io 20070410             85.26 seconds     1705.13 x

答案 1 :(得分:1)

你在谈论这里的基础技术,这些技术太过笼统。网络更多地是关于网络和电信而不是编程语言。信号传输,调制和接收会影响服务质量。想想多人游戏,或者你的后台商业门户。关于应用程序性能的主要考虑因素可能是天气,信号噪声,距离,使用资源的人数等等。服务器特性和用户外围设备将在程序的可用性中发挥重要作用。最后,您的程序是否可以在不同平台上正常运行。所以程序员最大的问题不是语言,而是错误。没有错误的程序。这不是编译器。这是代码。

我有同样的问题。 JavaScript或点网。答案取决于你想做什么。执行页面外观,简单数据或简单操作可能是脚本,因为脚本具有简单的语言结构。复杂的操作或更大的数据存储将通过更强大的结构化编程语言(如C ++)获得更好的性能。

还有货币因素,它与媒体呈现的复杂程度呈正相关。一切!花钱,甚至是你的时间。它可能是模糊的,但成本是存在的。通用(开源)并不总是更好,因为当您想要使用其他人的资源时,隐藏的成本会浮现。很多时候,$$公司$$使用更有效的工具来操纵他们拥有的资源,而这些工具可能需要特定的语言或技术。也就是说,你并不总是有语言选择。在开发资源方面已经做出了这一决定。

答案 2 :(得分:0)

您指的是计算速度还是编程效率?或许别的什么?

除了实际的数字运算速度之外,语言质量非常主观,有些人认为编程生产力比计算速度更重要。

此外,虽然许多语言都有共同的特征,但每种语言都有特定的目标。这就像比较苹果和橘子一样。

答案 3 :(得分:0)

来自CPU的浮点数等数字不如网页/网络服务等主观,以便在语言之间进行公平比较将是困难的,并且问题通常是如何编写,而不是语言本身。虽然并非不可能,但很难准确地比较语言。

对我来说最简单的比喻是数据库TPC评分机制众所周知,并且确实提供了数据库方面的性能数据,但普通开发人员何时会查看它们?除非你没有在极端水平上工作,否则它们不是你的指导因素(即便如此,数据库还包括使TPC分数更好的优化捷径。)

TPC从中创造了一个非营利性业务,但它需要从竞争产品中大量购买 - 如果MS / Oracle / IBM以及硬件供应商没有购买它,它就不会走得太远。

可以吗?可能,永远不要说永远,但它根本不是微不足道的,需要从多语言供应商,h / w供应商等获得支持。在这一点上,它更多的是销售和市场营销而不是技术。

答案 4 :(得分:-2)

  

有人为编程语言提出了一套很好的基准吗?

可能没有,这似乎越来越不可能发生 - 请参阅"Flawed Benchmarks",特别是“基准是一个缸”。

  

我说的是可以用各种语言完全相同的简单事物

是什么让你觉得你可以说他们“在各种语言中完全相同”?程序源代码可能看起来相同,但这并不意味着语言解释器完成相同的操作,或者编译器生成相同的处理器指令。