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

我看了这些 opensourcetesting.org/performance.php, ,但它们都不符合上面的(有点模糊)要求。

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

谢谢。

有帮助吗?

解决方案

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

相反,我会尝试提出一个框架设计,它定义了要测试的内容,并具有通用的数据集。然后每种语言/库都可以提供自己的框架 执行 它测试适合该库的操作。这样,即使操作不使用 精确的 相同的语法/调用。你最终测试了 惯用语 该库/语言的代码,而不仅仅是最低公分母。

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

在我看来,重要的是拥有一组通用的操作(即使它们不是 全部 实施者 全部 库)和通用数据集。这是基准测试有意义的唯一方法。

其他提示

如果可能的话,这将是最好使用某种形式的依赖注入的,以便可以插出一个模块并与另一个切换它。你需要的是寿(包装即是),这使得工作更难,但整体设计好之前创建这样的库唯一接口。积极的一面是,如果你想基准更早接口并不一定是完整的,但只是为了揭露什么,你觉得这是最,这有利于在PERF。是个问题。

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

我不喜欢人工测试。他们大部分时间inacurate IMO,人们往往忽略了一个库函数确实或多或少那么其他的库函数,而他们看起来一样的东西。我很少遇到没有那种性能基准。

在另一侧,很少有这样的事情完全更好库。许多库本良好的性能在某些情况下,其中其他类似的文库可以吸,反之亦然。

所以,如果性能是你的应用程序中最重要的事情,国际海事组织做的最好的事情是创建界面的操作,你想导入,然后插件/出几个库,看看在实际基准的差异,应用操作的基准,而不是一些人工数学魔神......

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top