2013-09-21 89 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标志进行控制。