FreeMarker缓存处理
FreeMarker 的緩存處理主要用于模版文件的緩存,一般來(lái)講,模版文件改動(dòng)不會(huì)很頻繁,在一個(gè)流量非常大的網(wǎng)站中,如果頻繁的讀取模版文件對(duì)系統(tǒng)的負(fù)擔(dān)還是很重的,因此 FreeMarker 通過(guò)將模版文件的內(nèi)容進(jìn)行緩存,來(lái)降低模版文件讀取的頻次,降低系統(tǒng)的負(fù)載。
當(dāng)處理某個(gè)模版時(shí),FreeMarker直接從緩存中返回對(duì)應(yīng)的 Template 對(duì)象,并有一個(gè)默認(rèn)的機(jī)制來(lái)保證該模版對(duì)象是跟模版文件同步的。如果使用的時(shí)候 FreemarkerServlet 時(shí),有一個(gè)配置項(xiàng)template_update_delay用來(lái)指定更新模版文件的間隔時(shí)間,相當(dāng)于多長(zhǎng)時(shí)間檢測(cè)一下是否有必要重新加載模版文件,0 表示每次都重新加載,否則為多少毫秒鐘檢測(cè)一下模版是否更改。
FreeMarker定義了一個(gè)統(tǒng)一的緩存處理接口CacheStorage,默認(rèn)的實(shí)現(xiàn)是 MruCacheStorage 最近最少使用的緩存策略。一般情況下,很少需要對(duì)緩存進(jìn)行擴(kuò)展處理。您可以通過(guò)下面的代碼指定最大緩存的模版數(shù):
| 1 | cfg.setCacheStorage(new freemarker.cache.MruCacheStorage(20, 250)) |
其中第一個(gè)參數(shù)是最大的強(qiáng)引用對(duì)象數(shù),第二個(gè)為最大的弱引用對(duì)象數(shù)。這兩個(gè)值FreeMarker默認(rèn)的是0和 Integer.MAX_VALUE,表明模版緩存數(shù)是無(wú)限的。
轉(zhuǎn)載于:https://www.cnblogs.com/cz-xjw/p/4987168.html
總結(jié)
以上是生活随笔為你收集整理的FreeMarker缓存处理的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: Please verify you in
- 下一篇: js原生图片拼图Demo