2013-09-21 125 views
0

我使用StringTemplate 4在內部生成Android應用程序中的網頁。改善StringTemplate 4性能

用於我的應用程序服務器(用於Web訪問)的模板也用於在Android應用程序的內部生成頁面,這與json數據存儲機制相結合,可以使Android應用程序在大多數情況下甚至脫機運行,與服務器完全相同的應用程序邏輯和模板。

我現在面臨的問題是性能。 典型的服務器請求在大約200 ms內處理:請求分析,驗證,進程,ST4加載和html頁面生成。這對我來說很好,我有一些待解決的性能改進,但我認爲現在是相當不錯的。

但是在Android應用程序中,ST4加載需要1-1.5秒。模板結構可以有2或3個級別,模板有幾個渲染器。 我已經做了一些測試,如創建一個級別的模板(stg沒有導入),但性能沒有改進,所以我覺得有一些與模板解析和渲染器加載有關。

有什麼方法可以改善ST4加載和解析嗎? 有沒有什麼方法來存儲和加載CompiledST對象或類似的東西?

我認爲ST4的概念非常好,但是如果ST不改變,爲什麼每次加載和解析模板以及相關模板? 我知道有一個緩存機制,但是我爲每個請求加載不同的stg,所以這不會節省第一次加載時間並緩存所有stg可能會吃掉設備內存。

回答

0

StringTemplate的參考實現當前不支持序列化/反序列化預編譯模板。 StringTemplate 4的C#端口支持此功能,並且該功能通過TemplateGroup.EnableCache標誌進行控制。