我們使用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