原文地址:Guava庫學習:學習Guava Cache(六)CacheStats html
上一篇,Guava庫學習:學習Guava Cache(五)CacheLoader 中, 咱們學習了CacheLoader抽象類,主要是其中的from方法,接收一個Function或Supplier,返回一個CacheLoader實 例,至此,咱們已經瞭解瞭如何建立一個強大的緩存機制,接下來,咱們想要收集緩存執行或使用後的一些統計信息,又該怎麼作呢?如今開始本篇,Guava Cache CacheStats的學習。java
Guava Cache提供了一種很是簡便的方式,用於收集緩存執行的統計信息,須要注意的是,跟蹤緩存操做將會帶來性能的損失,想要收集緩存的信息,咱們只須要在使用CacheBuilder的時候聲明咱們想要收集統計信息便可:web
LoadingCache<String,TradeAccount> tradeAccountCache = CacheBuilder.newBuilder() .recordStats()
上面的代碼,咱們經過建造者模式構造了一個LoadingCache實例,想要啓用緩存信息的統計,咱們惟一要作的就是在builder裏面經過recordStats()註冊,而想要獲取統計的信息,咱們只須要經過Cache或LoadingCache調用stats()方法,就將返回一個CacheStats實例,經過CacheStats實例能夠獲取到須要的統計信息,來看接下來的例子:緩存
CacheStats cacheStats = cache.stats();
下面是一個概述的清單,咱們能夠經過CacheStats獲取的一些信息:性能
加載緩存條目值所耗費的平均時間;學習
請求的緩存條目的命中率;ui
請求的緩存條目的未命中率;spa
緩存條數被移除的數量;code
涉及緩存性能的還有許多的信息,上面的清單只是一些咱們經過CacheStats獲取到的一些信息,最後,咱們翻開CacheStats的源碼,整理一下其中提供的公共方法,以下:orm
requestCount():返回Cache的lookup方法查找緩存的次數,不論查找的值是否被緩存。
hitCount():返回Cache的lookup方法命中緩存的次數。
hitRate():返回緩存請求的命中率,命中次數除以請求次數。
missCount():返回緩存請求的未命中的次數。
missRate():返回緩存請求未命中的比率,未命中次數除以請求次數。
loadCount():返回緩存調用load方法加載新值的次數。
loadSuccessCount():返回緩存加載新值的成功次數。
loadExceptionCount():返回緩存加載新值出現異常的次數。
loadExceptionRate():返回緩存加載新值出現異常的比率。
totalLoadTime():返回緩存加載新值所耗費的總時間。
averageLoadPenalty():緩存加載新值的耗費的平均時間,加載的次數除以加載的總時間。
evictionCount():返回緩存中條目被移除的次數。
minus(CacheStats other):返回一個新的表示當前CacheStats與傳入CacheStats之間差別的CacheStats實例。
plus(CacheStats other):返回一個新的表示當前CacheStats與傳入CacheStats之間總計的CacheStats實例。