Author: byron
Date: Sun Jan 4 07:52:08 2009
New Revision: 731279
URL: http://svn.apache.org/viewvc?rev=731279&view=rev
Log:
VELOCITY-664 Reduce memory usage of cached templates by preventing text from
being stored twice
Modified:
velocity/engine/trunk/src/changes/changes.xml
velocity/engine/trunk/src/java/org/apache/velocity/runtime/parser/node/ASTText.java
velocity/engine/trunk/src/test/org/apache/velocity/test/BaseEvalTestCase.java
Modified: velocity/engine/trunk/src/changes/changes.xml
URL:
http://svn.apache.org/viewvc/velocity/engine/trunk/src/changes/changes.xml?rev=731279&r1=731278&r2=731279&view=diff
==============================================================================
--- velocity/engine/trunk/src/changes/changes.xml (original)
+++ velocity/engine/trunk/src/changes/changes.xml Sun Jan 4 07:52:08 2009
@@ -27,6 +27,11 @@
<body>
<release version="1.7" date="In Subversion">
+ <action type="fix" dev="byron" issue="VELOCITY-664">
+ Reduce memory usage of cached templates by preventing text from being
stored
+ twice.
+ </action>
+
<action type="add" dev="byron" issue="VELOCITY-663">
Re-implement #stop so that it stops template execution and rendering.
This
Also addresses a performance bottleneck detected in the old
implementation.
Modified:
velocity/engine/trunk/src/java/org/apache/velocity/runtime/parser/node/ASTText.java
URL:
http://svn.apache.org/viewvc/velocity/engine/trunk/src/java/org/apache/velocity/runtime/parser/node/ASTText.java?rev=731279&r1=731278&r2=731279&view=diff
==============================================================================
---
velocity/engine/trunk/src/java/org/apache/velocity/runtime/parser/node/ASTText.java
(original)
+++
velocity/engine/trunk/src/java/org/apache/velocity/runtime/parser/node/ASTText.java
Sun Jan 4 07:52:08 2009
@@ -32,7 +32,7 @@
*/
public class ASTText extends SimpleNode
{
- private char[] ctext;
+ private String ctext;
/**
* @param id
@@ -66,11 +66,9 @@
throws TemplateInitException
{
Token t = getFirstToken();
-
- String text = NodeUtils.tokenLiteral( t );
-
- ctext = text.toCharArray();
-
+ // In most cases tokenLiteral() will return back t.image, we want to
use t.image directly
+ // and not a copy because otherwise this would mean all text nodes are
stored twice.
+ ctext = NodeUtils.tokenLiteral( t );
return data;
}
Modified:
velocity/engine/trunk/src/test/org/apache/velocity/test/BaseEvalTestCase.java
URL:
http://svn.apache.org/viewvc/velocity/engine/trunk/src/test/org/apache/velocity/test/BaseEvalTestCase.java?rev=731279&r1=731278&r2=731279&view=diff
==============================================================================
---
velocity/engine/trunk/src/test/org/apache/velocity/test/BaseEvalTestCase.java
(original)
+++
velocity/engine/trunk/src/test/org/apache/velocity/test/BaseEvalTestCase.java
Sun Jan 4 07:52:08 2009
@@ -37,7 +37,7 @@
{
protected VelocityEngine engine;
protected VelocityContext context;
- protected boolean DEBUG = true;
+ protected boolean DEBUG = false;
protected TestLogChute log;
public BaseEvalTestCase(String name)