我应该如何使用 Google 基准正确表示多变量复杂性?

How should I properly represent multi-variable complexity with Google benchmark?

Google 微基准库支持估计算法的复杂性,但一切都是通过告诉框架你的 N 的大小来表达的。我很好奇在此框架中表示 M+N 算法的最佳方式是什么。在我的测试中,我在测试中检查了 M 和 N 值的笛卡尔积。

我是否用 M+N 调用 SetComplexityN(对于 O(MN) 算法,我假设 SetComplexityNM*N 类似)?如果我想对算法的复杂性进行硬编码(相对于最适合),benchmark::oN 然后映射到 M+N 并且 benchmark::oNSquared 映射到 O(MN)?

这不是我们在图书馆中考虑过的东西。

如果将复杂度设置为 M+N 并使用 oN,则用于最小最小二乘法计算的拟合曲线将在 M+N.

中呈线性

但是,如果您将复杂度设置为 M*N 并使用 oNSquared 那么我们将尝试适应 pow(M*N, 2) 这可能不是您想要的,所以我认为仍然使用 oN 是合适的。