php大数组循环嵌套的性能优化

一、前言

      博主最近在用elasticsearch做项目,查出来的数据都是数组,在筛选数据组装数据的时候,难免会碰到循环嵌套的问题。如果两个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()." 字节 \n";
echo "内存峰值: ".memory_get_peak_usage()." 字节 \n";

      这里通过获取当前内存占用的差值来判断程序执行消耗的内存。通过内存的峰

你可能感兴趣的:(php开发)