0

我正在使用 StringTemplate 4 在 Android 应用程序中内部生成网页。

我的应用服务器中使用的模板(用于 Web 访问)也用于在 Android 应用程序内部生成页面,这与 json 数据存储机制相结合,使 Android 应用程序在大多数情况下甚至可以离线运行,并且使用完全相同的应用程序来自服务器的逻辑和模板。

我现在遇到的问题是性能。一个典型的服务器请求在大约 200 毫秒内处理:请求分析、验证、处理、ST4 加载和 html 页面生成。这对我来说很好,我还有一些性能改进待定,但我认为现在还不错。

然而,在 Android 应用程序中,ST4 加载需要 1-1.5 秒。模板结构可能有 2 级或 3 级,模板有多个渲染器。我做了一些测试,比如创建一个一级模板(没有导入的stg),但性能没有提高,所以我认为与模板解析和渲染器加载有关。

有什么方法可以改善 ST4 的加载和解析?有没有办法存储和加载 CompiledST 对象或类似的东西?

我认为 ST4 的概念很好,但是如果一个 ST 没有改变,为什么每次都加载和解析模板以及相关模板?我知道有一个缓存机制,但是我为每个请求加载了不同的 stg,所以这不会在第一次加载时节省时间,并且缓存所有 stg 可能会占用设备内存。

4

1 回答 1

0

StringTemplate 的参考实现目前不支持序列化/反序列化预编译模板。StringTemplate 4 的 C# 端口确实支持这一点,并且该功能是通过TemplateGroup.EnableCache标志控制的。

于 2013-10-16T14:12:24.900 回答