利用資料快取機制提高智慧型裝置應用程式的資料訪問效能

2021-04-13 11:08:46 字數 1776 閱讀 3780

剛看了 chris tacke 的《improving data access performance with data caching》

一文,回想起以前做過的一些專案,對資料快取在提高資料訪問效能方面的作用頗有感受,跟大家分享一下。

我們在開發 mis 專案時,要跟各種業務和資料在打交道。其中資料可以根據它們的用途,分為業務資料和參考資料兩種。業務資料是業務的資訊載體,如:採購進貨單、銷售出貨單、盤點單等。參考資料是業務資料組成部分,如:度量單位、顏色、城市等。參考資料在英文裡面通常叫 lookup data 或 reference data,它們是在系統中使用頻率很高的一類資料。因此,這類資料的訪問效能將會影響整個系統的使用者體驗。那麼,如何提高 lookup data 的訪問效能呢?

chris tacke 在他的文章中分析了三種資料訪問方式。前兩種訪問方式差不多,主要區別在於:第一種在每次訪問資料庫時都會開啟和關閉資料庫連線;而第二種是在系統快取乙個資料庫連線物件,每次使用後不關閉它。我相信大家都會認為第二種方式在頻繁訪問資料庫時效能更優,因為開啟乙個資料庫連線是比較耗系統資源的。然而結果卻讓人出乎意料,這兩種方式的效能很接近,甚至第二種方式效能還更好。

測試結果1:

device

processor

mean execution (ms)*

oldi sam-l8

800mhz geode x86

7.5 to 9.5

icop ebox 2300

200mhz vortex86

47 to 52

dell axim x51

416muz intel pxa270

38 to 62

測試結果2:

device

processor

mean execution (ms)

oldi sam-l8

800mhz geode x86

7.1 to 14.8

icop ebox 2300

200mhz vortex86

51 to 52

dell axim x51

416muz intel pxa270

43 to 61

第三種方式利用資料快取機制,在第一次獲取資料時,將資料載入到乙個hashtable中,然後再返回。以後就直接從快取獲取資料。第三種方式的效能跟前面兩種相比差了十萬八千里呀!

測試結果3:

device

processor

mean execution (ms)

oldi sam-l8

800mhz geode x86

0.0193 to 0.0201

icop ebox 2300

200mhz vortex86

0.1014 to 0.1164

dell axim x51

416muz intel pxa270

0.0975 to 0.1437

download the source code

download the pdf

另外,chris tacke 說他們在那個專案中還開發了乙個執行在 windows ce 的輕量級 asp.net web 伺服器,用來展現報表,在後續文章中會詳細介紹它的實現,期待ing...  

利用快取讀取檔案提高效能

前段時間寫了個程式需要對檔案進行讀取操作,一開始使用最普通的寫法 filereader in new filereader e a.html bufferedreader br new bufferedreader in string string str while string br.readl...

PHP利用memcache快取技術提高響應速度

php下memcache模組是乙個高效的守護程序,提供用於記憶體快取的過程式程式和物件導向的方便的介面,特別是對於設計動態web程式時減少對資料庫的訪問。memcache也提供用於通訊對話 session handler 的處理。memcache既可以在linux下使用,也可以在windows系統下...

利用Oracle執行計畫機制提高查詢效能

消耗在準備利用oracle執行計畫機制提高查詢效能新的sql語句的時間是oracle sql語句執行時間的最重要的組成部分。但是通過理解oracle內部產生執行計畫的機制,你能夠控制oracle花費在評估連線順序的時間數量,並且能在大體上提高查詢效能。準備執行sql語句 當sql語句進入oracle...