1

PHP で非常に単純なタイマー拡張機能を作成していますが、次の方法を考えています。

  • ランタイムにフックする/スクリプトの実行が開始/終了するときに呼び出される拡張機能の関数を取得する
  • 開始時と終了時に Pdo::query() などの特定の関数にフックします。

目的は、実行時間などを簡単に計算できるように、特定の関数またはスクリプトの時間を計ることです。私は、純粋な PHP でこれを達成できることを認識しています。

  1. auto_prepend_file / auto_append_file
  2. 関数 (の先頭) にフックできる拡張機能を使用します。

しかし、私は主に C/C++ ソリューション (PHP/Zend API) に興味があります。おそらく、私がやりたいことを行うより良い方法がありますか?

4

1 に答える 1

0

phpには拡張機能の関数のフックがないことは間違いありません!拡張機能に設定できる唯一のフックは、拡張機能がapacheに初めてロードされたとき(MINIT)と、サーバーが要求を受信するたび(RINIT)です。

どういうわけか、関数を独自のものに置き換えることができるかもしれません(解析、コンパイルなどのためにzendエンジンの関数を置き換えることができることを少し前に読んだことがあります)。

ps:xdebugも確認することをお勧めします。拡張機能がタイミング/プロファイリングを実行すると確信しています。そこで、どのように実行されるかを確認できます。

于 2013-03-13T14:55:23.817 に答える