php大配列ループネストのパフォーマンス最適化

952 ワード

一、前言
ブロガーは最近elasticsearchでプロジェクトを行い、検出されたデータはすべて配列であり、データの組み立てデータをフィルタリングする際に、ループネストの問題に遭遇するのは避けられない.2つの50000の配列がループネストされている場合、実際の演算は50000*50000の演算量であり、プログラムの実行速度に非常に影響します.この文書は主にブロガー最適化プログラムの過程を記録する.
二、テストプログラム性能ツール
まずいくつかのテストツールを提供して、私たちのどのプログラムが時間を費やして、メモリを消費しているかを明確に知ることができます.
1、テストプログラムの実行時間の関数:
/*
 * php         
 * */
  function msectime() {
    list($msec, $sec) = explode(' ', microtime());
    $msectime =  (float)sprintf('%.0f', (floatval($msec) + floatval($sec)) * 1000);
    return $msectime;
  }

このプログラムを借りて関数の実行速度を検出し、ミリ秒を出力します.この関数については、以前の記事を参照してください.phpは現在の時間のミリ秒数を取得し、コードセグメントの実行時間をテストします.
2、phpはメモリを占有する
echo "      : ".memory_get_usage()."    
"; echo " : ".memory_get_peak_usage()."
";

ここでは,現在のメモリ消費量の差を取得することにより,プログラム実行で消費されるメモリを判断する.メモリを通過するピーク