簡単にPHPコードが鈍化(パフォーマンスの問題)
-
09-06-2019 - |
質問
ここで初めて解決しなければならない問題です。
私は内部応用のための私の会社っています。アプリケーションに建PHPやかなものにコード(OO、DB抽象Smarty)ものを作っぽ.
問題は、アプリケーション 非常に遅い.
入れは行っていません何が入っているのかは開けてからの鈍化の申請は、下記のうちどれですか。私の最適化をはかるようにするためのコードも数DBクエリー、たくさん取ることもにPHPコードであるがを実行することを示しています。りさんのツールすことのできる中学の英語で分からいないところは、戦略を立のためのチェックマコードです。
ができるかをチェック/戦略自分にとっても必要なのはPHPのツールですが私のアプリはcrappingます。
思いの?
解決
に使用しました XDebugプロファイリング 最近では、similiarます。として出力ファ報告読み込むことができる多くの共通のプロファイリングアプリケーションできるようにしていくと見込んでいますが、もって使用されたばかりのってこんなところにslackware的な).
他のヒント
としてファン、xDebugに優れています。いWindows WinCacheGrind ました。
本日の発表によるRasmus Lerdorf(タのサポートに対するコミットメント.彼がいくつかの良い例の試験PHP速にお越しいただきなどの一部の炉内構造物にゆっくりできるものです。XDebugはツールのた利用します。また、非常に固体のポイントなどのコストパフォーマンスだったときの枠組み
ビデオ:http://www.archive.org/details/simple_is_hard
スライド(それはなかなか出てこないもので、映像):http://talks.php.net/show/drupal08/1
多変数が世の中に与えるインパクトの中から必要なものを選んで使用。いることをお勧めしない瞬間とPHPの問題です。
最初に、どのように役立つのPHP?してください基本的な最適化のApacheまたはIISです。のサーバーに忙しい加工その他の種類の要求?してください。活用 PHPコードの加速器?片かの試験サーバーがボトルネックには、アプリケーションで実行さを他のサーバーです。
第二に、業績の応したアプリケーションが遅くない影響があるようには見えるページ?これを渡してくれるので表示のかを分析す。場合は応したアプリケーションを表明するものではなく、問題になりますが、元のサーバー-プラットフォームまたはグローバルSQLクエリーはあらゆるご要望にお(ユーザ認証など)を行います。
第三に、また数を最小にSQLクエリが最適化、既存のクエリー?ご利用の場合MySQLは、活かした種々のそれぞれの強みを貯蔵システム?て走行す 説明 ご最も重要な質問をいただける適切なデー?このことは極めて重要です影するクエリのアクセスシルゲロイスのサンタマリア;また、データセットは、ありませの影響貧しい数の幸運にも、多くの記事 このような る方法などの説明ができるようにならご説明いたします。
第四に、共通の間違いることによるデータベースサーバに自動的にすべてのリソースを利用できます。システム。を確認しておきましょうめいただくには明示的に割り当ての十分な資源をデータベースアプリケーション.MySQLでは、例えば、通りを少し入った場所に追加カスタム設定(my.cnfファイル)などというキーのバッファ、テーブルサイズのスレッド並行処理、innodbバッファプールサイズ等
まダブルチェックの上ないのボトルネックは、コードプロファイラのようにXdebug動画ファイルをダウンロードす。個人的には好きですから、Zend Studioプロファイラができない場合があり最良のオプションを除き、既に活用のZendムスタックです。しかし、私の経験では非常に珍しいPHPそのものの根本原因は遅い。しばしば、コードプロファイラでの判断を支援するとより精度の高いるDBクエリーへの責任を押しつけられます。
phpED(http://www.nusphere.com/products/phped.htm ももデバッグおよびプロファイリングとする機能を追加時計、ブレークポイントなどにPHPのコードです。の統合プロファイラを直接には、時間別内訳の各機能を呼びクラスメソッド内からのIDEです。ブラウザプラグインもより迅速に統合FirefoxまたはIE(訪問遅いURLをブラウザンクをクリックし、ボタンにプロファイルまたはデバッグ).
しての有用性を指摘してのアプリが遅くなるために集中で最も符号化をやされることを回避することができ時間を無駄に最適化で高速のコードです。を試みたZendやEclipseっていて現時点では販売されている使いやすさのphpED.
意両XdebugおよびphpED(DOC)を必要とする追加PHPモジュールを設置時のデバッグに対するウェブサーバ.phpEDもご用意しています(untriedより)、現地のデバッグオプションです。
Xdebugプロファイルにかかるものと思われます。別の先端WincacheGrindは、更新されています。 http://code.google.com/p/webgrind/ -ブラウザの場合は、簡単です。
チャンスができるようになり、データベース。チェックのための関連する指数では十分なメモリキャッシュのどれにも当てはまらない作業データです。
また、利用可能 APD (先端のPHPのデバッガ).
これは簡単です。
$ php apd-test.php
$ pprofp -l pprof.SOME_PID
Trace for /Users/martin/develop/php/apd-test/apd-test.php
Total Elapsed Time = 0.12
Total System Time = 0.01
Total User Time = 0.07
Real User System secs/ cumm
%Time (excl/cumm) (excl/cumm) (excl/cumm) Calls call s/call Memory Usage Name
--------------------------------------------------------------------------------------
71.3 0.06 0.06 0.05 0.05 0.01 0.01 10000 0.0000 0.0000 0 in_array
27.3 0.02 0.09 0.02 0.07 0.00 0.01 10000 0.0000 0.0000 0 my_test_function
1.5 0.03 0.03 0.00 0.00 0.00 0.00 1 0.0000 0.0000 0 apd_set_pprof_trace
0.0 0.00 0.12 0.00 0.07 0.00 0.01 1 0.0000 0.0000 0 main
あの素敵なチュートリアルのコンパイル方法APDをプロファイリングないものとします。 http://martinsikora.com/compiling-apd-for-php-54
ifsその大きなコードベースの試apcだいています。
できるものは受け付けていませんregister_tick_function機能はクリアしました。伝えるphpを通る機能periodcallyを通じて自分のコードです。きを追跡する機能は現在実行中の時間量の間に発信します。ることができない、最も。http://www.php.net/register_tick_function
を使用していまZend開発環境(windows)で作成しています。を解決したメモリ使用量スパイクは昨日よりステッピングを通してデバッガの実行過程Explorerのメモリ/cpu/ディスクの活動として各ラインが実行されます。
ロExplorer: http://technet.microsoft.com/en-us/sysinternals/bb896653.aspx.
ZDE含まれる基本性能プロファイラが見え時間を各機能通話中のページです。
トップスクリプトのんのプロフィールを作りたいオブジェクトのロッドやルアーを使用することの周囲に Benchmark_Timer オブジェクトです。全体のコードを追加するには $object->setMarker("name");
通話などを中心に、被疑者のコードです。
のラッパークラスが破壊する方法をとるにはログイン情報を書き込みでlog4php.私は一般的に送信するsyslog(多くのサーバー集合体をログファイル一ート-サーバー
デバッグ、オリエンタルモダン一色の別世界のログファイルを見ても改善が必要となる。その後、生産までを解析し、ログファイルと性能解析。
なxdebugでも、私の能力を比較しに二人の死刑執行のコードです。
で説明する必要がありますの HAプロキシ その他の負荷分散ソリューションの場合はサーバの性能劣化の原因の遅い処です。サーバーです。