php大陣列迴圈巢狀的效能優化

2021-09-23 01:53:24 字數 588 閱讀 5504

博主最近在用elasticsearch做專案,查出來的資料都是陣列,在篩選資料組裝資料的時候,難免會碰到迴圈巢狀的問題。如果兩個50000的陣列迴圈巢狀,那實際運算則是50000*50000的運算量,十分影響程式執行速度。這篇文主要記錄博主優化程式的過程。

先提供一些測試工具,可以明確知道咱們哪部分程式消耗時間久,占用記憶體大。

1、測試程式執行時間的函式:

/*

* php輸入毫秒部分的**

* */

function msectime()

借用這段程式檢測函式執行速度,輸出的是毫秒。關於這個函式,參考我之前的文章:

php獲取當前時間的毫秒數,並且利用它測試**段執行時間

2、php占用記憶體

echo "當前占用記憶體: ".memory_get_usage()." 位元組 \n";

echo "記憶體峰值: ".memory_get_peak_usage()." 位元組 \n

php 大陣列 foreach 迴圈巢狀的效能優化

前提 最近在做後台的時候,頁面載入太慢,故第一時間想到的自然是優化sql,優化後sql查詢速度從 2秒變成了零點幾秒,以為就這麼完事了,然並卵,載入竟然花費30秒!這麼慢,然後在 中分塊記錄它的耗時時間,發現是在 foreach 遍歷的問題,巢狀資料量太大了,我還巢狀了三層,資料量大約為 30 20...

迴圈巢狀的優化

基本for迴圈巢狀九九乘法表 public class test system.out.println 基本for迴圈列印100以內的質數 public class test if flag flag true 100以內的質數最優化 使用標籤 public class test system.ou...

巢狀迴圈的優化

今天拿到這樣乙個需求 有map a和map b,這兩個map都持有著乙個同樣的key id,其對應的value可能相同,也可能不相同。現在需要對兩個map中該key對應的value相同的鍵值對做些特殊的操作。這是個很簡單的需求,很簡單,我直接乙個迴圈裡巢狀另乙個迴圈去實現這個功能需求 for map...