2011-08-25 58 views
6

我目前正在研究任何方法來收集關於客戶端計算機性能的一些分析/指標到我們的webapp。該應用程序非常Ajax,我們希望收集一些關於客戶端機器運行情況的統計信息。測量客戶端的性能

我們不一定要把性能監控代碼都是通過應用程序(的原因,大量,這可能是不可行反正)。相反,我們希望能夠在用戶提交反饋時運行某種測試或某些東西,這可以讓我們瞭解瀏覽器/計算機的性能。

,因爲它使撫育有關分析等討論這顯然是有用的,但只是作爲我們發展的機器大規模製服點這是一個稍微棘手的事情來研究。我們希望獲得關於客戶所連接的各種機器的一些指標。

是否有類庫/框架或最佳實踐存在這個的?到目前爲止,我最好的,雖然是通過JS幾秒鐘運行某種CPU密集型的過程和措施,這樣的表現......

想法或建議?可能是一個有趣的討論。

+1

不足以成爲答案:我們爲此創建了vm。將其限制爲1 cpu和512mb,並且「客戶端似乎仍在使用的那個糟糕的瀏覽器版本」然後,就瞭解它是如何起作用的。這很容易設置,我認爲你應該迫使開發人員從最終用戶的角度經常看他們的工作。 – Eddy

+0

@Eddy:不要忘記撥號般的帶寬 – drlemon

+0

不知道它在虛擬機中工作的效果如何(如果有的話),但我已經與dummynet(http://info.iet.unipi。它/ luigi/dummynet /)用於在執行客戶端測試時限制網絡連接。 – AngerClown

回答

0

這是一個有趣的問題,因爲您在他們的機器上提出了大多數開發人員配置文件。我不確定除了將性能分析器放入代碼之外是否還有其他方法。您提到的有趣的部分是基於用戶的反饋,而不一定會一直髮送到服務器。

我們可以開發一個探查JavaScript類,基本上收集:

  • 功能名稱
  • 網絡往返時間
  • 總體功能執行時間
  • UserMachineProcessingTime =總函數的執行時間,網絡往返
  • 其他有用的信息(類似於YSlow的或類似的工具提供)

正如你提到的,他是根據用戶的反饋,我們不需要爲每個函數被調用的所有時間(這使得應用程序非常健談)發送該信息。然後,我們將這些信息彙總到客戶端並可能將其存儲在某處(可能使用HTML5本地存儲?)

只有當用戶同意提交性能配置文件時,纔會將此信息發送到服務器所需的數據。如果我們知道用戶的反應如何:「我們注意到您的表現低於我們的普通用戶的表現,您是否希望發送您的表現檔案,以便我們能夠學習並使其更好?」,這一點很有趣。 (不同的措辭是必要的,我對此不好,但這基本上是信息)。在回答是的時候,配置文件會發送它收集到的聚合信息+ Javascript可以收集的其他信息(用戶代理等)。當然,問題是有多少用戶會選擇發送他們的個人資料信息,但這是我們可以嘗試的一種方法。

+0

是的,這是一個有趣的討論。令人遺憾的是,我們無法用分析工具對很多代碼進行測試,因爲它主要是我們定製的預先購買的軟件包。此外,我有點擔心,不斷分析跑步可能會降低性能,尤其是在那些我們真正感興趣的情況下:電腦可怕的人。我希望能夠想出一些可以在後臺運行的相對較短的測試,而在「反饋部分」可以獲得客戶表現的基本概念。 – rat

2

這裏是我們做的監測和分析客戶端使用數據...

  • 使用Google Analytics捕捉到關於用戶的信息(平臺,瀏覽器,連接速度,場地使用等)

  • 使用Google Webmaster Tools獲得其他網站的統計信息和優化建議

  • 使用Pagespeed插件分析/微調高容量和/或慢頁面

  • 使用Apache ABJMeter - 針對大容量頁面運行基本負載測試

+0

另一個有用的工具是:提琴手(http://www.fiddler2.com/fiddler2/),帶有neXpert性能插件(http://www.fiddler2.com/fiddler2/addons/neXpert.asp)。 –