PHP 関数と疑似関数の使用: 長い関数名はパフォーマンスに影響しますか?

WBOY
リリース: 2016-07-29 09:01:16
オリジナル
1010 人が閲覧しました

長い関数名はパフォーマンスに影響します
PHP 関数の使用については、次のような提案があります
1. 関数は組み込み関数で完成させることができます。php 関数を自分で記述する代わりに、組み込み関数を使用してみてください。
2. 特定の関数に高いパフォーマンス要件がある場合は、拡張機能を使用して実装することを検討できます。
3. Php 関数呼び出しは高価であるため、過度にカプセル化しないでください。一部の関数は、何度も呼び出す必要がある場合、機能しません。 わずか 1 行または 2 行のコードで実装できます。呼び出しをカプセル化しないことをお勧めします。
4. さまざまな設計パターンにこだわりすぎないでください。前の記事で説明したように、過度のカプセル化はパフォーマンスの低下を引き起こします。両者の間には考慮する必要のあるトレードオフがあります。
Php には独自の特性があり、Java モデルをあまり真似しないでください。
5. 関数はあまり深く入れ子にしないでください。再帰は注意して使用する必要があります。
6. 擬似関数は性能が高いため、同じ関数を実装する場合は優先されます。たとえば、array_key_exists の代わりに isset を使用します
7。 関数から参照を返すことはあまり意味がなく、実際的な効果はありません。考慮しないことをお勧めします。
8. クラス メンバー メソッドは通常の関数と比べて効率が低いため、パフォーマンスの低下を心配する必要はありません。可読性とセキュリティが向上する、より静的なメソッドを検討することをお勧めします。
9. 特別な必要がない限り、パラメータを渡すときは参照渡しではなく値渡しを使用することをお勧めします。もちろん、パラメーターが大きな配列であり、変更する必要がある場合は、参照渡しを検討できます。

疑似関数とそのパフォーマンス

php には、標準的な関数の使用法であるいくつかの関数がありますが、基礎となる実装は実際の関数呼び出しとは完全に異なります。 その本質は、上記の 3 つの関数のいずれにも属さず、別個のオペコードであり、ここでは疑似関数または命令関数と呼ばれます。
上で述べたように、疑似関数は標準関数と同じように使用され、同じ特性を持つように見えます。しかし、最終的に処刑されたとき、彼らは絶体絶命でした
これは呼び出す対応する命令 (オペコード) として反映されるため、その実装は if、for、算術演算などの演算に近くなります。
phpの擬似関数

<code><span>isset</span><span>empty</span><span>unset</span><span>eval</span></code>
ログイン後にコピー

上記の紹介からもわかるように、擬似関数は実行命令に直接変換されるため、通常の関数に比べて1回の関数呼び出しによるオーバーヘッドが少なく、 それでパフォーマンスも良くなるのです。以下のテストで比較してみます。 Array_key_exists と isset はどちらも配列内のキーを決定できます

存在する場合は、そのパフォーマンスを見てください
図からわかるように、array_key_exists と比較して、isset のパフォーマンスが大幅に向上しており、基本的には前者の約 4 倍であり、空の関数呼び出しであっても
比較すると約1倍の性能となります。これは、PHP 関数呼び出しのオーバーヘッドがまだ比較的大きいことも証明しています。

http://txjia.com/tip/?2013-1K-BPEG

').addClass('事前番号付け').hide(); $(this).addClass('has-numbering').parent().append($numbering); for (i = 1; i
').text(i)); }; $numbering.fadeIn(1700); }); }); 上記では、PHP 関数と疑似関数の使用方法を紹介しました。長い関数名はパフォーマンスに影響しますか? 、関連コンテンツも含めて、PHP チュートリアルに興味のある友人に役立つことを願っています。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート