【发布时间】:2011-09-25 19:37:40
【问题描述】:
为了提供一些背景信息,我正在测量虚拟机 (VM) 或一般系统软件的性能,并且通常想要比较针对性能问题的不同优化。性能是在许多基准测试的绝对运行时间中测量的,并且通常针对 VM 的许多配置随 CPU 内核的使用数量、不同的基准测试参数等而变化。为了获得可靠的结果,每个配置都要测量 100 次。因此,我最终对所有类型的不同参数进行了相当多的测量,我通常对所有这些参数的加速比感兴趣,并将 VM 与未进行某种优化的 VM 进行比较。
我目前所做的是选择一个特定的测量系列。假设在 1 个内核上运行基准测试 A 的 VM 的测量值,无论是否经过优化(VM-norm/VM-opt)。
由于我想比较不同基准测试和核心数量的结果,我不能使用绝对运行时,但需要以某种方式对其进行规范化。因此,我将针对 VM-norm 的 1 个核心上的基准 A 的 100 次测量与 VM-opt 的相应 100 次测量配对,以计算 VM-opt/VM-norm 比率。
当我按照我得到它们的顺序进行测量时,我的 100 个结果 VM-opt/VM-norm 比率显然有相当大的变化。所以,我想,好吧,让我们假设我的测量值的变化来自非确定性效应,并且相同的效应导致 VM-opt 和 VM-norm 以相同的方式变化。因此,天真地,在配对之前对测量进行排序应该是可以的。而且,正如预期的那样,这减少了课程的变化。
但是,我的半知半解告诉我这不是最好的方法,甚至可能不正确。 由于我最终对这些比率的分布感兴趣,为了用 beanplots 可视化它们,一位同事建议使用笛卡尔积而不是配对排序测量。这听起来可以更好地解释配对进行比较的两个任意测量的随机性。但是,我仍然想知道统计学家会对这样的问题提出什么建议。
最后,我真的很想用 R 绘制 bean 或小提琴图的比率分布。简单的箱线图,或者只是意味着+stddev 告诉我发生的事情太少了。这些分布通常指向由这些非常复杂的计算机上的复杂交互产生的工件,这就是我感兴趣的。
非常欢迎任何有关如何使用以及如何以正确方式产生此类比率的方法的指针。
【问题讨论】:
-
您的问题似乎有两个(或更多)组成部分:1:此处可以使用哪些统计方法,2:如何可视化这些数据?当我谈到可视化问题时,我正要回答统计问题。你能细化这个吗?由于已经给出了可视化答案,那么也许将统计问题分开会更好。也许应该以这种方式修改statistics.SE问题。
标签: r statistics benchmarking