上文提到了groovyshell的parse方法會導致perm區爆滿問題、頻繁fullgc的問題,這裡提供乙個簡單的解決方案-為每個新類單獨建立乙個groovyclassloader物件。通過**熱載的方式,解決該問題。
private static concurrenthashmap> zlassmaps
= new concurrenthashmap>();
public static object invoke(string scripttext, mapparams) }}
binding binding = new binding();
for ( map.entryent : params.entryset() )
script scriptobj = invokerhelper.createscript(script, binding);
return scriptobj.run();
}// 為指令碼**生成md5指紋
public static string fingerkey(string scripttext)
return ret.tostring();
} catch (exception e)
}
快取引入的元件 UITableView 元件化
在 ios 開發中,uitableview 可以說是最常用的控制項。幾行 實現對應方法,系統就會給你呈現乙個 60 幀無比流暢的列表,讓初學者成就感爆棚。然而隨著開發的深入,我們就會慢慢覺察到當前的 uitableview 實現會有這樣或那樣的問題。幾乎所有 tableview adapter 中都...
快取引入的元件 先更新資料庫,還是快取?
這一篇來聊聊快取一致性的問題,這裡討論的範圍有限,僅僅是應用快取與後端儲存的一致性,當然也會適當做下延伸 如下 4 種組合,該如何決策?標準在 一致性問題出在哪?update cache update db update db update cache delete cache update db ...
架構三 引入本地快取和分布式快取
其實這個階段拿出分布式快取,有些早,前期主要用的是本地快取,我使用到的技術主要是ehcahe,這個記憶體基本就存在你應用執行的伺服器上面,這個有個很大的問題就是,不適合長久儲存,如果長久儲存,資料量很大的時候,會占用你的服務記憶體很大一部分空間,分布式快取用的比較多的是memcached以及後期的r...