2011-09-15 7 views
1

多くの異なるソースでは、仮想マシンの時間管理に関する問題を読むことができます。すべてのベンチマークは時間を頼りにしているので、私はどのように解釈するかわからない。 vmwareのベンチマークまたはxdebugプロファイラの結果、およびそれらがどれほど信用できるか。仮想マシンのベンチマーク、プロファイリング

http://communities.vmware.com/docs/DOC-5581

VMwareのパフォーマンステストのための特別なVMを構築することを示唆しています。さらに回避策(VMware Toolsのインストール、特別な設定など)のように見える多くのヒントがあります。

特にディスクI/Oパフォーマンスの問題に関しては、結果がどれほど正確であるか非常に懸念しています。

http://www.nowpublic.com/tech-biz/rasmus-lerdorf-simple-hard-drupalcon-2008-key-note

:ラスマス・ラードフは、VMwareを使用すると、物理ディスクと比較can't特殊なディスクキャッシュを持っているので、STATに関する彼のパフォーマンス向上のいくつかは彼のVMwareのベンチマークでaren't見える呼び出すことを言って、drupalconでそれについて話しました結局のところ、VMwareがベンチマーキングに対応できるかどうかはわかりません。

+0

これは質問ですか?私はそこに質問があるかどうか分からない... – Simon

+0

それは質問です。私は、vmsのベンチマーキングの問題とその結果を信頼できるかどうかについてもっと知りたいと思います。 Apacheのベンチマークを実行するたびに異なる結果が得られますが、これらはプロファイラーと同じ10%です。比較する明確な参照がない場合のパフォーマンスに関するコード変更をどのように比較できますか?私の前提は、VMWareが理由だが、他の人が同じ問題に気付いているのだろうかと思う。 –

答えて

0

多くのことは、あなたが何をしようとしているかによって異なります。

  1. だけ回帰
  2. あなたは、パフォーマンスを向上させるために修正することができ、時間排水を探す探すために測定を続ける

多くの人々は、これらが同じであると思うが、私はそれが実際には限られた経験から来ていると思いますやっている(2)。

私のやり方(2)は測定していませんが、いくつかのランダムな時点で、何が起きているのか、そしてなぜそれを聞いていますか? それが仮想マシン上にあるかどうかはそれほど重要ではありません。 時間の大部分を占める不愉快なことをしている場合、それが仮想マシン上にあるかどうかがわかります。 正確な分数は関係ありません。卑劣な活動を公開することは重要です。

ここにはexample in pythonがありますが、どの言語でも可能です。

0

vmware-toolsを使用しないとディスクキャッシングとパフォーマンスが低下する可能性があります。
しかし、私はWindowsでコードを作成している間、私は開発用サーバーとしてLinux仮想マシンを持っているので、Vmwareが非常に役立つことを発見しました。
私は簡単にベンチマークし、自分のコードで潜在的なボトルネックを見つけることができます。

これは完璧ではないかもしれないし、いくつかのことを忘れているかもしれませんが、専用のLinuxボックスを設定するよりもはるかに簡単で安価です。

更新
ApacheBenchは、テストの拡張性とメトリック生RequestPerSecondsための優れたツールです。

しかし、私のPHPスクリプトでボトルネックを発見し、コードの最適化の効果をテストするために、私はいつもプロファイラ出力を表示するWebgrindまたはWinCacheGrindのいずれかと一緒にXDebugを使用しています。

Linuxボックスをお持ちの場合は、pecl install xdebugを使用してXDebugをインストールするか、xdebugサイトで事前ビルドされたバイナリを見つけることができます。

私は、クエリ文字列パラメータとしてXDEBUG_PROFILEを渡すことで、必要であれば、私は選択プロファイルできXdebugを

profiler_enable_trigger
[xdebug] 
xdebug.profiler_enable = 0 
xdebug.profiler_enable_trigger = 1 
xdebug.profiler_output_dir = "/opt/lampp/htdocs/profiles" 
xdebug.profiler_output_name = "cachegrind.out.%s.%t" 

ため、次の設定を使用します。
また、webgrindを設定して、ブラウザ自体に出力graphicsllyを直接表示することができます。