パラメータを変更しない関数の場合、PHP の参照渡しは値渡しより遅いですか?

Linda Hamilton
リリース: 2024-11-08 11:45:02
オリジナル
519 人が閲覧しました

Is Pass-by-Reference Slower Than Pass-by-Value in PHP for Functions That Don't Modify Parameters?

PHP では参照渡しが高速ですか (>= 5.0)?

PHP では、関数パラメータを参照渡しできます、関数がスコープ外の変数を変更できるようにします。これはパフォーマンスの最適化を目的としたものではありませんが、PHP で使用される Copy On Write ロジックが、パラメーターを変更しない関数のパフォーマンスに影響を与えるかどうかという疑問が生じます。

パフォーマンス テスト

20 KB の文字列パラメーターを使用した関数呼び出しの 100,000 回の反復を伴うテストにより、次のことが明らかになりました。結果:

パラメータを読み取るか使用する関数の場合:

  • 値渡し: 0.12065005 秒
  • 参照渡し: 1.52171397 秒

パラメータを変更する関数の場合:

  • 値渡し: 1.52223396 秒
  • パス参照による: 1.52388787 秒

結論

  1. どちらの場合も、パラメータを値で渡す方が一貫して高速です。
  2. パラメーターを変更する関数の場合、参照渡しと参照渡しの間でパフォーマンスに大きな違いはありません。値渡し。

以上がパラメータを変更しない関数の場合、PHP の参照渡しは値渡しより遅いですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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