Linq語句效率低下,慎用 記一次優化

2022-03-30 13:43:37 字數 774 閱讀 5376

有乙個wpf專案中,需要查詢曲線,然後顯示,資料間隔時長為10秒,需要顯示24小時資料,大概資料量為8k多條,開始的**是這樣寫的,沒什麼其他原因,因為寫**便捷,下面只貼出關鍵的一行**:

realtimedata item = realtimedatalist.where(m => m.createtime > nowdatetime.addseconds((-i - 1) *configinitail.daqinterval) 

&& m.createtime < nowdatetime.addseconds((i - 1) * configinitail.daqinterval)).orderbydescending(m => m.createtime).firstordefault();

**就不解釋了,就是查詢採集間隔時間內最新一條資料,整個曲線載入需要10秒左右,甚至有時候10秒以上,排除了其他原因,影響執行效率的應該就是在上面這一句;在我的印象裡,for迴圈效率是最高的,查了一些資料很多人也是這個看法,那我改一版試下唄,

**如下:

private realtimedata getrealtimedata(listrealtimedatalist, datetime nowdatetime)

}return

null

; }

改完之後,一測試,2秒左右就可以載入出來,我靠,這效率,也相差太多了!!!現在才8k多條資料,資料量一大,相差的效率恐怕會更大,對於這種大資料處理情況,還是慎用linq,不要貪圖寫**便捷!

記一次exists語句優化過程

我們經常會遇到帶有exists這種形式的語句,官方描述如下,一般對應於子查詢語句返回的布林值 在例子中可以看到 select department id from departments d where exists select from employees e where d.departmen...

記一次除錯

這是我最近幾個月來遇到的最棘手的乙個問題 昨天花了4個小時找出第一層次的原因 這個糾結啊,本來和老婆說好準時下班回家吃飯的,結果被這個問題拖了老久。這是乙個gradle的plugin,用來resolve公司內部的dependency的,弄完了跑測試專案的,拋乙個npe,而且npe還不在自己的 裡面。...

記一次 EqualsAndHashCode的疑惑

lombok的使用真的是讓開發人員欲罷不能,乙個 data不管有多少屬性全部搞定,以後加字段也不用從新生成get和set方法。不過這裡還是有乙個小坑需要注意一下,舉個例子 public class equalsandhashcodetest data noargsconstructor access...