我们使用Apache Velocity作为动态模板。目前速度有以下的评价方法/更换:在StringBuilders/CharSequences中使用Apache Velocity
public static boolean evaluate(Context context, Writer writer, String logTag, Reader reader)
public static boolean evaluate(Context context, Writer out, String logTag, String instring)
我们通过提供StringWriter
写评价结果使用这些方法。我们的传入数据将采用StringBuilder
格式,因此我们使用StringBuilder.toString
并将其作为instring
供稿。
的问题是,我们的模板是相当大的(可以是兆字节,在罕见的情况下几十ms),发生替换非常频繁,并且每个替换操作三元所需的存储器的量(这将创建一个输入数据+ StringBuilder.toString()
新副本+传出数据)。
我想知道是否有办法改善这一点。例如。如果我可以找到一种方法来提供一个Reader
和Writer
在相同的StringBuilder
实例之上,只使用额外的内存进/出差异,这是一个好方法吗?有没有人做过类似的事情,并可以分享这类课程的任何资源?或者,也许有更好的解决方案给予问题?
许多有趣的点,谢谢! – mindas 2011-03-12 22:13:02