代码之家  ›  专栏  ›  技术社区  ›  miku

如何对用不同编程语言编写的库进行性能测试?

  •  0
  • miku  · 技术社区  · 15 年前

    问题是 :给定多个具有类似或相等范围的编程库(例如XML解析器、正则表达式、标记等);是否有工具可以对这些库运行性能测试并进行比较(并生成报告),即使这些库可能使用不同的编程语言(如java、C#、ruby、python、perl等)编写?

    我看了这些 opensourcetesting.org/performance.php

    是否有用于跨语言跨平台性能测试的工具包或框架?

    谢谢

    2 回复  |  直到 15 年前
        1
  •  1
  •   Jon Skeet    15 年前

    我不会尝试为多种语言使用单一工具包。这不太可能为每个应用程序带来最佳(甚至是平均)性能。

    实施 准确的 相同的语法/调用。你最终测试了 惯用的

    这是我对协议缓冲区进行基准测试所采用的方法。到目前为止,我的基本框架已经用C#和Java实现,我现在正在编写一个更丰富的框架,它允许运行整个“基准脚本”。一个理想的目标是,同一平台中的不同实现(例如,协议缓冲区的不同.NET实现)应该能够轻松地连接到相同的核心基准测试代码中。

    在我看来,重要的是要有一套通用的操作(即使它们不是 全部的 库)和公共数据集。这是基准测试有意义的唯一方式。

        2
  •  1
  •   majkinetor    15 年前

    如果可能的话,最好使用某种形式的依赖注入,这样您就可以插入一个模块并将其切换到另一个模块。在使用tho(即包装器)之前,您需要为这些库创建唯一的接口,这使得工作更困难,但总体设计更好。从积极的方面来看,如果您想对早期的接口进行基准测试,那么不必是完整的,而只需公开您认为在性能良好时最有益的内容。这是个问题。

    这些能力在很大程度上取决于所使用的语言。

    另一方面,很少有完全更好的图书馆。许多库在某些情况下表现良好,而其他类似库可能很糟糕,反之亦然。

    因此,如果性能对你的应用程序来说是最重要的,IMO最好的做法是为你想要导入的操作创建接口,然后插入/输出两个库,看看实际基准测试的差异,你的应用程序的基准测试在运行中,而不是一些人为的数学混乱。。。