velocity-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Ilkka Priha <impr...@surfeu.fi>
Subject Re: OutOfMemoryException Processing Velocity Template
Date Fri, 06 May 2005 18:11:13 GMT
What kind of writer are you using and how long are the items? 66 000 HTML table 
rows with 5 numeric columns consumes about 32 MB when buffered into a string 
writer. If the items are longer, it takes much more memory.

-- Ilkka


lawrence@marchex.com wrote:
> I tried putting static HTML in the #foreach loop, same problem.  Then I tried setting
the large list as a "local" varible:
> 
> #set ($localList = $List)
> #foreach($row in $localList)
> ...
> 
> but that didnt help either.   I don't see why velocity should use 250+ MB of memory iterating
over a list ~8MB in size...  
> 
> -L
> 
> On Thu, May 05, 2005 at 02:56:28PM -0700, jian chen wrote:
> 
>>Well, I don't have a good clue now. 
>>
>>What about do the debugging step by step, i.e., use just static html
>>in your #foreach loop? Will that blow up the memory?
>>
>>Cheers,
>>
>>Jian
>>
>>
>>
>>On 5/5/05, lawrence@marchex.com <lawrence@marchex.com> wrote:
>>
>>>Thanks for the suggestion.   I tried putting that, along with
>>>
>>>file.resource.loader.cache = true
>>>
>>>in my velocity.properties file.   Both did not work.   Any other suggestions?
>>>
>>>Thanks!
>>>
>>>-L
>>>
>>>On Thu, May 05, 2005 at 02:11:28PM -0700, jian chen wrote:
>>>
>>>>Hi,
>>>>
>>>>This maybe because you haven't turned on template caching. I had
>>>>similar problem before, and even if I only used evaluate(...) method
>>>>and load the template using my own java program, it happened when the
>>>>for loop is lot of iterations.
>>>>
>>>>The bottom line for my problem is I need to turn on template caching,
>>>>so, velocity will not try to cache the objects it parsed during each
>>>>time of the iteration.
>>>>
>>>>I did:
>>>>ri.setProperty(RuntimeConstants.FILE_RESOURCE_LOADER_CACHE, "true");
>>>>
>>>>where ri is a runtime instance.
>>>>
>>>>Will this fix your issue?
>>>>
>>>>Cheers,
>>>>
>>>>Jian
>>>>
>>>>
>>>>On 5/5/05, lawrence@marchex.com <lawrence@marchex.com> wrote:
>>>>
>>>>>I am getting an OutOfMemoryException:
>>>>>
>>>>>org.apache.velocity.exception.MethodInvocationException: Invocation of
method 'get' in  class org.apache.velocity.tools.struts.TilesTool threw exception class java.lang.OutOfMemoryError
: null
>>>>>
>>>>>when I am creating a large velocity file.  The vm file itself is fairly
small, but this piece of velocity is causing the exception:
>>>>>
>>>>>#foreach($row in $List)
>>>>><tr>
>>>>><td height="20" class="tbltxt">$!row.item1</td>
>>>>><td class="tbltxt">$!row.item2</td>
>>>>><td class="tbltxt">$!row.item3</td>
>>>>><td class="tbltxt">$!row.item4</td>
>>>>><td class="tbltxt">$!number.format('currency', $!row.item5)</td>
>>>>></tr>
>>>>>#end
>>>>>
>>>>>List is a list of relatively small objects (5-6 Strings, a couple of BigDecimals),
but the List itself contains approximately 66,000 entries.  Unfortunately, unless I set the
tomcat JVM to use a heap size of at least 256M, this velocity template throws an OutOfMemoryException
when it is being processed.
>>>>>
>>>>>Any suggestions?
>>>>>
>>>>>Thanks.
>>>>>
>>>>>-L
>>>>>
>>>>>---------------------------------------------------------------------
>>>>>To unsubscribe, e-mail: velocity-user-unsubscribe@jakarta.apache.org
>>>>>For additional commands, e-mail: velocity-user-help@jakarta.apache.org
>>>>>
>>>>>
>>>>
>>>>---------------------------------------------------------------------
>>>>To unsubscribe, e-mail: velocity-user-unsubscribe@jakarta.apache.org
>>>>For additional commands, e-mail: velocity-user-help@jakarta.apache.org
>>>
>>>---------------------------------------------------------------------
>>>To unsubscribe, e-mail: velocity-user-unsubscribe@jakarta.apache.org
>>>For additional commands, e-mail: velocity-user-help@jakarta.apache.org
>>>
>>>
>>
>>---------------------------------------------------------------------
>>To unsubscribe, e-mail: velocity-user-unsubscribe@jakarta.apache.org
>>For additional commands, e-mail: velocity-user-help@jakarta.apache.org
> 
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: velocity-user-unsubscribe@jakarta.apache.org
> For additional commands, e-mail: velocity-user-help@jakarta.apache.org
> 
> .
> 


---------------------------------------------------------------------
To unsubscribe, e-mail: velocity-user-unsubscribe@jakarta.apache.org
For additional commands, e-mail: velocity-user-help@jakarta.apache.org


Mime
View raw message