2010-02-03 49 views
4

我在应用程序中遇到了一些内存问题,但要确切确定它的位置有点困难。我有两组数据:如何将浏览量与内存峰值相关联?

浏览量

  • 被请求所说的页面被请求
  • 在该页

内存使用

  • 记忆量Y是用
  • 该内存使用记录

我想看看到底是哪浏览量与高内存使用情况相关的时间。我的猜测是,我会做某种T测试来确定哪些浏览量与增加的内存使用率相关。但是,对于要进行何种T检测,我有点不确定。至少有人能指出我朝着正确的方向吗?

回答

3

我会建议构建一个包含两列的数据集。第一个是每个页面出现在分配的最高内存使用时间中的比例,第二个是这些(相同)页面对于内存分配的其余值的比例。

然后,您必须执行配对测试,以检查差异(高 - 休息)的中位数是否小于或等于零(H0),以及差异中位数大于零的备选假设H1)。我建议使用非参数测试Wilcoxon Signed Ranks Test,它是Mann - Whitney Test的变体,用于配对样本。它还考虑到每对中差异的大小,这是其他测试忽略的(例如符号测试)。

请记住,关系(零差异)在非参数方法的派生中存在很多问题,应该避免。处理关系的最好方法是在数据上添加一些“噪音”。也就是说,通过添加足够小的随机变量来修改绑定值后完成测试,这不会影响差异的排名

我希望测试的结果和绘制差异分布可以让您深入了解问题所在。

这是Wilcoxon Signed Ranks TestR language

+1

谢谢gd - 这是对我的回应的一个很好的阐述。样本大小差别很大吗?高记忆数将只有其他人观察的10-20%,对吧? – Grembo 2010-02-03 20:34:02

+0

这就是为什么我建议使用比例。也可以用贝叶斯方式避免使用继承规则的零百分比 - 或计算后验概率估计(二项式/贝塔模型)。 – 2010-02-03 21:33:19

3

Jason,

你问好的统计问题。考虑用作随机变量的内存量。第一步是看这个r.v的分布情况。它可能不适合任何已知的分布,但不要让它阻止我们。一种简单的方法是获取最高的内存使用量(前5-10%),并查看这些综合浏览量(或其请求的时间)是否与其余浏览量不同。我认为您需要一些非参数测试来比较低内存示例浏览量比例与高内存示例浏览量比例。希望这可以帮助。

1

你带来什么肯定是一个有趣的统计问题的实现,但我可能会建议用好醇”电子表格,而不是一个图形化的方式?

为每个页面指定一个唯一的编号,并制作第#页与内存使用情况的散点图。你应该得到一堆垂直的标记线。希望罪魁祸首会很明显。

如果数据点太多以致线条变硬,则可以在页码上添加少量噪点以扩大线条。如果请求重叠,那么你可能不得不尝试一些技巧,比如将内存除以并发请求的数量,但即使有很多噪音,你的眼睛也应该能够挑出犯人。

1

这里是另一个想法: 如果你能够参加浏览量和内存使用由时间戳值,可以形成一个表像这样

页A |页面B |页面C |页面D |页面E | .... | Memory_use

根据您的数据,每个页面列的值可能有点[0,1],表明页面被请求与否,或页数。在Memory_use列中,您可以拥有相关的内存负载比例,或以MB为单位计数。通过这种方式,Memory_use可以被认为是一个因变量,而页面可以被看作是解释变量。因此,您可以将适当的(取决于因变量的形式)广义线性模型拟合到此数据集中。这个分析的结果将让您深入了解以下

哪位页显著影响内存使用的价值

-The程度,每个页面有助于负载(由其系数模型)

- 未测量的其他因素在记忆负荷(过度分散)中起重要作用的可能性,最坏的情况是所有预测变量可能变得不重要。

相关问题