2010-02-03 47 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程度,每個頁面有助於負載(由其係數模型)

- 未測量的其他因素在記憶負荷(過度分散)中起重要作用的可能性,最壞的情況是所有預測變量可能變得不重要。

相關問題