2011-08-25 7 views
6

私は現在、Webアプリケーションのクライアントマシンのパフォーマンスに関するいくつかの分析/メトリクスを収集する方法を研究しています。このアプリは大々的なAjaxであり、クライアントマシンがどれだけうまく稼働しているかに関するいくつかの統計情報を収集したいと考えています。クライアントのパフォーマンスを測定する

必ずしもパフォーマンスモニタリングコードをアプリケーション全体に配置する必要はありません(これは実現不可能な理由の数が多いためです)。むしろ、ユーザがブラウザ/コンピュータの性能がどれほど優れているかを示すフィードバックをユーザから提出すると、何らかのテストや何かを実行できるようにしたいと考えています。

これはプロファイリングなどの議論を引き起し続けるため、ややこしいことですが、これは明らかに有用ですが、私たちの開発マシンが大量に圧倒されている点だけです。私たちは、クライアントが接続しているマシンの種類についていくつかの測定基準を得ることを望んでいます。

これにはあらゆる種類のライブラリ/フレームワークやベストプラクティスが存在しますか?これまでのところ私の最善の方法は、JSを使って何らかのCPU集約的なプロセスを数秒間実行し、パフォーマンスを測定することです...

思考や提案?興味深い議論かもしれない。

+1

この目的のためにvmを作成します。それを1 cpuと512mbに制限し、 'クライアントがまだ使用していると思われるその厄介なブラウザのバージョン'それから、それがどう反応するかの感覚を得る。セットアップは簡単ですし、開発者にそのエンドユーザーの視点から作業を頻繁に見てもらうようにする必要があります。 – Eddy

+0

@Eddy:ダイヤルアップのような帯域幅を忘れないようにしてください – drlemon

+0

VMでどれくらいうまくいくかはよくわかりませんが、dummynet(http://info.iet.unipi。 it /〜luigi/dummynet /)を使用して、クライアントテストを実行するときにネットワーク接続を制限します。 – AngerClown

答えて

0

これは、自分のマシンでほとんどの開発者プロファイルを上げたことで興味深い質問です。パフォーマンスプロファイラをコードに追加する以外の方法があるかどうかはわかりません。面白いことに、これはユーザーのフィードバックに基づいており、常にサーバーに送信されるとは限りません。

私たちは、基本的に収集しプロファイラjavascriptのクラス開発することもできます:

  • 関数名
  • ネットワーク往復時間
  • 関数の合計実行時間
  • UserMachineProcessingTime =総関数実行時間のネットワーク・ラウンドトリップを
  • その他の有用な情報(YSlowまたは同様のツールが提供するものに似ています)

彼はユーザーからのフィードバックに基づいていますが、各機能が呼び出されるたびにこの情報を送信する必要はありません(これによりアプリが非常に混乱します)。この情報をクライアント側で集計し、おそらくどこかに保存します(おそらくHTML5ローカルストレージを使用しています)

ユーザーがパフォーマンスプロファイルの送信に同意した場合にのみ、この情報をサーバーに送信します必要なデータ。 「あなたのパフォーマンスが平均的なユーザーのパフォーマンスを下回っていることがわかりました。あなたがパフォーマンスプロファイルを送信して、それをより良くすることができますか?」と小さなメッセージが表示された場合、ユーザーの反応を見るのも面白いでしょう。 (私はこれと違っていますが、基本的にメッセージです)。 「はい」と答えたら、プロファイルは収集した集計情報+ Javascriptが収集できる追加情報(ユーザーエージェントなど)を送信します。もちろん、質問はどれくらいのユーザーがプロファイル情報を送信するかを選択することですが、試すことができるアプローチの1つです。

+0

それは面白い議論ですね。悲しいことに、私たちがカスタマイズしたパッケージは主に購入済みのパッケージなので、プロファイリングで多くのコードを実装することはできません。また、プロファイリングを定期的に実行するとパフォーマンスが低下する可能性があることを少しは心配しています。特に、恐ろしいコンピュータを持つ人々には本当に関心が集まっています。私はバックグラウンドで実行できる比較的短いテストを思いついて、クライアントのパフォーマンスの基本的な考え方を得ることができる 'フィードバックセクション'を作りたいと考えています。 – rat

2

ここでは、クライアントの使用状況データを監視して分析する方法を紹介します。

  • 使用Google Analytics

  • 使用Pagespeedプラグインの追加、サイトの統計と最適化の提案を取得するためにユーザに関する情報(プラットフォーム、ブラウザ、接続速度、サイトの利用状況など)

  • 使用Google Webmaster Toolsをキャプチャします高音量および/または低速ページを分析/微調整する。

  • 使用Apache ABまたはJMeter - 大量のページに対して基本的な負荷テストを実行する

+0

便利なもう1つのツール:neXpertのパフォーマンスアドオン(http://www.fiddler2.com/fiddler2/addons/neXpert.asp)でFiddler(http://www.fiddler2.com/fiddler2/)。 –

関連する問題