2009-04-24 3 views
1

私はゆっくりと実行しているスクリプトを持っていて、どのように時間をとってどのような修正が速度を向上させるかを知りたいと思っていました。 PHPタイマーのようなものがありますか?私のPHPスクリプトのスピードテストに行くには?

更新:私は明確にする必要があります...ゆっくりと実行されているスクリプトは、私のメーリングリストのスクリプトで、リストの全員にメールを送ります。だから私は、一連の購読者をループして、1つずつ電子メールを送信しています。遅いので、配列を反復するのにどれくらいの時間がかかったのか興味深いと思っていました。だから私はそれをテストするためのすばやく簡単な方法を探しています。

答えて

0

私は、私はこの1つに類似したタイマークラス使用して終了:http://forum.codecall.net/php-tutorials/4254-php-timer-class.html

を私はちょうど私のループの最初にタイマーを開始し、各反復の終わりに時間をログに記録しました。平均して、メールごとに3〜4秒かかることが判明しました。電子メールの爆発ごとに5分はあまりにも多すぎます。リファクタリングする時間...

1

ページの読み込み時間を測定し、必要な場所を調整することができます。

私は、http://www.phpbench.com/のようなWebサイトが好きです。これは、PHPの基本的なニーズについて詳しく説明しています。

Zend Frameworkを使用したオフコース作成PHPは実際にあなたのコードについて実際には何も言いません。 zend coding standardsに従っていますか?

http://www.php.net/getrusageは、タイミングの問題に役立つ場合があります。

幸運を祈る!

編集:getrusage関数の追加リンク(php.netページも参照)。

edit 2:あなたのメーリングリストには、例えば、ループの前に数えてphpbench.comをチェックして、時間を節約することができます。

どのようにメールを送信していますか?それはボトルネックになる可能性があります。

幸運を祈る!

+0

は、私が唯一の私がおよそ – Andrew

1

私が知っている最良のことは、常にプロファイラを使用することです。私の選択したプロファイラはXdebugです。これにはプロファイラが組み込まれており、PHPのセットアップにインストールするのはかなり簡単です。一度起動して実行すると、さまざまなデバッグ情報やプロファイリング情報を得ることができます.Xdebugの出力形式は、kCacheGrind toolスタックの可視化とレポート作成、アプリケーションフローのグラフ表示)で読むことができます。幸せなLinuxキャンパー。私はこれらのツールなしで何をするだろう!

また、Zend Frameworkに関しては、Zend_Cacheクラスを十分に使用していないか、またはZend_Registryクラスを使用する必要がある複雑なクラスのHiResearchを使用することに関連して、スピードの面でいくつかの落とし穴があります。

ハッピープロファイル。

+0

一種の奇妙なZFをするための高速1はZend_Cacheのを使用する必要があるだろうことを示唆しています知らなかったことに建てられた何かがあった場合にはZend Frameworkのを述べました。 Zend_Registryは複雑なアーキテクチャの解決策ではありません。 –

+0

Zend Frameworkを使用する人は、Zend Frameworkを使用しているときに、Zend Frameworkの重要な部分を高速化するために使用していないため、動作が遅くなるのは間違いです。 :) また、 "複雑": 1. \tツイスト。コイル巻き。 2; \t複雑;複雑に関与する あなたのプログラムが畳み込まれている場合、複雑さをZend_Registryにシフトすることで解消することができます。それがその目的です。 – AlexanderJohannesen

0

キューの使用はどうですか?リストが増えるとメールサーバーの限界にぶつかるため、私には良いアイデアのようです。このキューの内容はpopular implementation in PEARですが、基本的に必要なのはcronジョブとデータベーステーブルだけです。

私はZFで同様のものを構築していますので、何が起こるか見ることに興味があります!