効率を測定しようとしているスクリプトを作成しようとしています。いくつか質問があります:-
- 小規模なアプリケーションの場合、この種のプロファイリングは必要ですか? それとも私は妄想的になっていますか?(ほとんどのコードが適切に効率的である/無限ループがないことを前提としています)
- これを何に対してベンチマークする必要がありますか?何と比較すればよいですか?
- 以下は、ab から取得した効率出力です。このやり方はずれすぎですか?このアプリの設計は間違った方向に向かっていますか? 注意すべき警告信号はありますか?
abs -n10000 -c100 http://localhost/testapp これはApacheBench、バージョン2.3です Copyright 1996 Adam Twiss、Zeus Technology Ltd、http://www.zeustech.net/ The Apache Software Foundation にライセンス供与 (http://www.apache.org/) ローカルホストのベンチマーク (しばらくお待ちください) 1000件の依頼を完了 2000件の依頼を完了 3000件の依頼を完了 4000件の依頼を完了 5000件の依頼を完了 6000件の依頼を完了 7000件の依頼を完了 8000件の依頼を完了 9000件の依頼を完了 10000 件のリクエストを完了しました 10000 件のリクエストを完了しました サーバー ソフトウェア: Apache/2.2.10 サーバーのホスト名: localhost サーバーポート: 80 ドキュメント パス: /testapp ドキュメントの長さ: 525 バイト 同時実行レベル: 100 テストにかかった時間: 33.608 秒 リクエストの完了: 10000 失敗したリクエスト: 5179 (接続: 0、受信: 0、長さ: 5179、例外: 0) 書き込みエラー: 0 合計転送: 6973890 バイト HTML 転送: 5253890 バイト 1 秒あたりのリクエスト数: 297.55 [#/秒] (平均) リクエストあたりの時間: 336.080 [ms] (平均) リクエストあたりの時間: 3.361 [ms] (すべての同時リクエストの平均) 転送速度: 202.64 [Kbytes/sec] 受信 接続時間 (ミリ秒) 最小平均[+/- sd] 中央値最大 接続: 0 1 1.5 0 109 処理: 8 334 403.9 176 3556 待機中: 7 334 403.9 176 3556 合計: 9 335 403.8 177 3556 特定の時間 (ミリ秒) 内に処理されたリクエストの割合 50% 177 66% 296 75% 415 80% 519 90% 842 95% 1141 98% 1615 99% 1966 100% 3556 (最長要求)
PHPを使用してスクリプトを記述しています。さらにテストしたところ、PHP スクリプトから MySQL 接続部分をコメントすると、「失敗したリクエスト」が 0 になることもわかりました。どうしたの?この失敗率を下げるにはどうすればよいですか?
ありがとう、アレック