【问题标题】:web programming language benchmarks?网络编程语言基准?
【发布时间】:2010-12-04 07:35:30
【问题描述】:

我在想,随着越来越多的编程使用类似的各种工具和技术转移到网络上,有没有人想出一套好的编程语言基准?

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

当我购买新 CPU 时,我可以对浮点数、整数和多任务数进行基准测试。我可以调整诸如渲染时间之类的东西。

我认为有人可以为简单的编程任务和实用的 Web 服务场景开发标准工作台。最好是一个独立的组织。当然,您可以随时调整代码以提高性能,但我说的是可以在每种语言中相同完成的简单事情。我敢打赌它也可能很强大。

在某些时候,对于可扩展性,性能将成为 Web 语言的一个问题。我想知道一种语言,或者更好的是,它的最新版本是否能在竞争中脱颖而出。

还有人在做这件事,还是我应该自己创业?

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

【问题讨论】:

  • 作为一个小问题,C 是这些语言中最快的,但不是特别适合 Web 开发。
  • @Dean J:汇编器可能会更快:)
  • 实际上,对像显卡这样的硬件进行基准测试比对编程语言进行基准测试要客观得多,因为您有可以应用的特定指标(每秒多边形数、帧速率等)直接进入游戏体验。编程语言并非如此,它会为无数不同的任务返回不同的结果。
  • 叹气,程序员。问一个天上掉馅饼的问题,得到一个脚踏实地的回应。像这样的东西还不存在,但可以吗?我不在乎它现在看起来有多难或不切实际。我认为有人可以提出一套可能有用的标准基准。即使它比普通显卡要难 10 倍。
  • 问一个天上掉馅饼的问题,得到一个脚踏实地的回答。你说这好像是一件坏事:)

标签: performance web-services web-applications benchmarking


【解决方案1】:

服务器端语言有some benchmarksout therecomparing 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

【讨论】:

  • “以大致相同的方式在每种语言中进行合理的性能比较” - 您还没有说明为什么您认为这样做会使其成为合理的性能比较?
  • Java 1.4.2 ??房间里未被提及的大象 - 基准游戏;-) shootout.alioth.debian.org/u32/…
【解决方案2】:

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

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

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

【讨论】:

    【解决方案3】:

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

    除了实际的数字运算速度之外,语言质量是高度主观的,有些人认为编程效率比计算速度更重要。

    此外,虽然许多语言具有共同特征,但每种语言都有特定的目标。这就像将苹果与橙子进行比较。

    【讨论】:

      【解决方案4】:

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

      对我来说最简单的类比是数据库 TPC 评分机制是众所周知的,并且确实提供了数据库方面的性能数据,但是普通开发人员什么时候甚至会去查看它们?除非您不是在极端水平上工作,否则它们不是您的指导因素(即使那样,DB 也包含优化器快捷方式以提高 TPC 分数。)

      TPC 将其作为一项非盈利业务,但它需要从竞争产品中大量购买——如果 MS / Oracle / IBM 以及硬件供应商不购买它,它不会走得太远。

      可以吗?可能,永远不要说永不,但这一点都不是微不足道的,需要多个语言供应商、硬件供应商等的支持。在这一点上,更多的是关于销售和营销而不是技术。

      【讨论】:

        【解决方案5】:

        有没有人提出一套好的编程语言基准?

        可能不会,而且这种情况似乎越来越不可能发生 - 请参阅 "Flawed Benchmarks",尤其是“基准测试是个垃圾”。

        我说的是可以用每种语言以相同方式完成的简单事情

        是什么让您认为您可以说它们“在每种语言中都是相同的”?程序源代码可能看起来相同,但这并不意味着语言解释器执行相同的操作或编译器生成相同的处理器指令。

        【讨论】:

          猜你喜欢
          • 2018-09-09
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2010-11-23
          • 1970-01-01
          • 1970-01-01
          • 2019-10-02
          • 1970-01-01
          相关资源
          最近更新 更多