效能優化之避免在迴圈裡面操作IO

2021-07-23 17:38:45 字數 721 閱讀 1000

之所以寫這篇部落格,是因為在開發中,在一次專案的**code review中,發現一段**的執行效率很低,後面才發現,是因為在迴圈裡面我們操作了資料庫 io方面,所以效率低下。請看下面的**優化步驟。

假設我們有100個contact資料,現在我們需要根據這些contact資料去獲取相應的client資料。在contact物件中,有乙個clientid屬性,然後我們可以根據clientid屬性的值去獲取相應的client資料。相應的偽**如下:

public listfetchcontactclient(listcontactlist)

return contactlist;

}

那麼這樣的話,在迴圈裡面,我們有了資料庫的io操作,這樣的話效率肯定就慢了,相當於我們做了contactlist的集合大小的資料庫訪問操作。如果我們將contactlist的集合大小的資料庫訪問操作變成乙個資料庫的操作,那麼速度就上來了。偽**如下:
public listfetchcontactclient(listcontactlist)

listclientlist = contactdao.getclientbyids(ids);

//do something,做client和contact的匹配**

return contactlist;

}

經過我們優化之後,將訪問資料庫的操作變成了一次,這樣就大大加快了**的執行效率。

JS效能優化 之 FOR迴圈

for 迴圈我們用的真的是太多了,但你是否關注過它的優化寫法呢?記錄下 for迴圈遍歷 for.of遍歷 foreach遍歷 for.in遍歷 map遍歷1.最最常規寫法,沒有任何不妥 for var i 0 i 10 i 2.迴圈的次數為變數的情況 for var i 0 i arr.length...

JS效能優化 之 FOR迴圈

for 迴圈我們用的真的是太多了,但你是否關注過它的優化寫法呢?記錄下 1.最最常規寫法,沒有任何不妥 for var i 0 i 10 i 2.迴圈的次數為變數的情況 for var i 0 i arr.length i 其實大多數人都是這種寫法,這種寫法的缺點在於,每次迴圈都要去讀取一次陣列的長...

效能優化之MySQL優化(四) 作業系統配置優化

資料庫是基於作業系統的,目前大多數的mysql都是安裝在linux系統之上,所以對於作業系統的一些引數配置也影響到mysql的效能,下面就列出一些常用到 的系統配置。網路方面的配置,要修改 etc sysctl.conf檔案 增加tcp支援的佇列書 net.ipv4.tcp max syn back...