PHP コードの最適化 array_push

little bottle
リリース: 2023-04-05 21:36:01
転載
2402 人が閲覧しました

通常、PHP の配列にはいくつかのタイプのデータが挿入されます。

  1. 定義時に直接代入する
$arr = array(‘apple’, ’banana’);
ログイン後にコピー
  1. 配列変数操作を使用する
$arr = array();
$arr[] = ‘apple’;
$arr[] = ‘banana’;
ログイン後にコピー
  1. 挿入するには array_push() を使用します
$arr = array(‘apple’);
array_push($arr, ‘banana’, ‘orange’);
ログイン後にコピー

ほとんどの場合、まずデータベースからデータを取得し、次にそれを配列形式に変換します。 1 番目のケースでは、配列を定義する際の直接代入は、多くの場合、データ量が少なく既知であるため、コードの最適化がない状況にのみ適しています。

パフォーマンスの比較

テストには php 7.2 を使用し、構成の最適化は行いませんでした。テスト方法: 配列を定義し、2 番目と 3 番目の方法をそれぞれ使用して 100,000 レコードを挿入します。コードはおおよそ次のとおりです。 ##convert

関数を使用してメモリ使用量を確認します。実行結果は次のとおりです。

PHP コードの最適化 array_push

PHP コードの最適化 array_push

##上記を実行すると、コードを複数回実行すると、配列変数の割り当てを直接使用すると約 0.0045 かかるのに対し、

array_push

を使用する方法では約 PHP コードの最適化 array_push0.006

かかることがわかります。これらはすべて 100,000 レコードであるため、消費されるメモリは同じです。

PHP コードの最適化 array_push2 つのメソッドを比較すると、各ループで関数の呼び出しに時間がかかるため、メソッド 2 のほうが

array_push

を呼び出すよりも確かに高速であることがわかりました。ただし、上記のテストを見るだけでは、そうではありません。 2 番目のメソッドが array_push を呼び出すより速いとは感じません。2 番目のメソッドが 3 番目のメソッドよりどれだけ速いかは、まったく無視できます。 確かに、この種の最適化は、ほとんどのアプリケーションでは最適化を行わないのと変わりませんが、アプリケーションがボトルネックに達すると、目立たない最適化によってパフォーマンスが大幅に向上する可能性があり、テストでの配列の構造はは非常に単純ですが、実際のプロジェクトではデータ型はそれほど単一ではなく、入れ子配列になったり、配列のサイズが 100,000 を超える場合もあります。 この 2 つの違いを見てみましょう。

array_push()

は関数呼び出しで、もう 1 つは関数呼び出しではありません。つまり、コードの点では 2 つは同じです。サイズ。配列から構造的な観点から、テストではインデックスを使用しませんでした。デフォルトは 0 から開始します。データを挿入するために key => value 形式を使用したい場合は、 ,

array_push()

はあまり便利ではありませんが、扱いは簡単ですが、このときは方法 2:

$array1[$key] => $x

を使用すると非常に便利です。 array_push() は良くないと言われましたが、場合によっては array_push が依然として非常に便利です。たとえば、一度に複数の要素を挿入したい場合は、次のように使用できます: <div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false">$arr = array(‘a’, ’b’); array_push($arr, ‘c’, ‘d’); // $arr = array(‘a’, ’b’, ‘c’, ‘d’);</pre><div class="contentsignin">ログイン後にコピー</div></div> 上記の比較からわかるように、PHP には配列補間方法が多数あります。は似ていますが、それぞれの方法をいつ使用する必要があるかを理解することが重要です。 <p>関連コース: <code>PHP ビデオ チュートリアル

以上がPHP コードの最適化 array_pushの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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