


CI フレームワークのソースコード閲覧メモ 5 ベンチマークテスト BenchMark.php、cibenchmark.php_PHP チュートリアル
Jul 13, 2016 am 10:15 AMCIフレームワークのソースコード読解メモ5 ベンチマークテスト BenchMark.php、cibenchmark.php
前回のブログ(CIフレームワークのソースコード読解メモ4 ブートファイルCodeIgniter.php)では、コアプロセスのコアについて見てきました。 CI では、機能はさまざまなコンポーネントによって実行されます。これらのコンポーネントは個々のモジュールに似ており、さまざまなモジュールが相互に呼び出して、CI のコア スケルトンを形成します。
この記事から始めて、各コンポーネントの実装の詳細をさらに分析し、CI コアのブラック ボックスを深く掘り下げていきます (調査の後、実際にはホワイト ボックスであるはずですが、アプリケーションの場合のみブラック ボックスとみなされます)ボックス)をよりよく理解するには、このフレームワークを理解して把握することが最善です。
いつものように、開始する前に、不完全なコアコンポーネント図を CI に貼り付けます:
まずクラス図を見てください:
1 つずつ展開してみましょう:
1. マーク
関数の署名は次のとおりです:
リーリーこの関数は文字列型のパラメータを受け入れ、実装は 1 つの文だけで簡単になります:
リーリー言い換えれば、この関数は、関数が呼び出された時点を記録するためにのみ使用されます。
コントローラーでの特別な処理 (後で詳しく説明します) により、
$this->benchmark->mark($name);を使用してアプリケーションに追加できることに注意してください。コントローラー 実行時点、例: リーリー そのうち、
function_test_startとfunction_test_endは、それぞれ関数呼び出しの開始時点と終了時点を記録するために使用されます 印刷結果:
ここで関数の呼び出し時間を計算するには、BenchMark コンポーネントの 2 番目の関数 elapsed_time を使用する必要があります
2.経過時間
関数の署名は次のとおりです:
リーリー3 つのパラメータはすべてオプションのパラメータです
(1)。$point1 が空の場合は、「{elapsed_time}」を返しますリーリー ナニ!明らかに時間を返すはずですが、代わりに文字列を返します。これは非常に奇妙です (smarty タグに似ています)。実際、Output コンポーネントでは、
{elapsed_time}が置き換えられます。ここでは、置き換えメソッドを見てみましょう。 リーリー つまり、パラメータが指定されていない場合、この関数を呼び出して実際に取得されるのは、total_execution_time_start
からtotal_execution_time_endまでの時間差です。さらに、total_execution_time_start は BM がロードされた後に設定される最初のマーク ポイントであるため (total_execution_time_end は定義されておらず、現在の時点を返します)、この関数が実際に返すのはシステムのロード時間と実行時間です。 (2) 不明なマークポイントが呼び出された場合。結果は不明で、空が直接返されます:
リーリー (3). $point2 のマークポイントが設定されていない場合は、$point2 のマークポイントを現在の時点に設定します。
リーリー (4) 返された最後の 2 つのマーク ポイント間の時間差:
リーリー 前の例も見てください。ここで次のように呼び出すことができます: リーリー
関数の実行時間を取得します。3.メモリ使用量
この関数はシステムのメモリ使用量 (MB 単位) を返します。
{elapsed_time}
と同様に、この関数によって返される{memory_usage} も出力: に置き換えられます。 リーリー BenchMark コンポーネント自体は比較的単純なので、これ以上の説明は省略します。
最後に、このコンポーネントのソースコードを貼り付けます:
<span>1</span> <span>Elapsed_time </span><span>2</span> <span>Mark </span><span>3</span> Memory_usage
ci フレームワークには mysql バージョンの要件があるのですが、mysql55 を使用するとエラーが報告されるのはなぜですか
Mysql.ciは最新ではありませんが、現在は正常に使用されています。

人気の記事

人気の記事

ホットな記事タグ

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック











PHP フレームワークの軽量オプションはアプリケーションのパフォーマンスにどのような影響を与えますか?

さまざまなアプリケーションシナリオに最適な Golang フレームワークを選択する方法

PHP フレームワークの学習曲線は他の言語フレームワークと比較してどうですか?

Android 15 Beta 4の包括的なテストが完了し、安定版リリースへのカウントダウンが始まりました

Golang フレームワークのパフォーマンス比較: 賢明な選択を行うための指標
