Hi,
Sorry if you received this message for the second
time..
I have a java.lang.OutOfMemory error problem with my
model developed in Ptolemy II version 3.0.2.
I am working on a model which uses an ArrayToken (of
180 tokens) and my actors change the value of the
tokens in each iteration. As tokens are immutable I am
creating new tokens in each iteration. During the run
time after several iterations the system stops with an
error java.lang.OutOfMemory. I thought some problem
with garbage collection is creating the problem so I
tried calling System.gc at the end of fire() function
in my actors but there was no change in the number of
iterations before getting the error.
I tried to generate the same problem with the actors
of Ptolemy and created a simple model using the
ArrayExtract actor (the xml file is attached) and ran
into the same problem after several iterations (6143
iterations on a computer with 512MB Ram, Windows XP
operating system, java version 1.4.2 ).
Could you help me to find out the reason of this
problem? And how can I continue the simulation without
running out of memory?
Thanks,
Nilgun Fescioglu Unver
__________________________________
Do you Yahoo!?
Yahoo! Finance Tax Center - File online. File on time.
http://taxes.yahoo.com/filing.html
<?xml version="1.0" standalone="no"?>
<!DOCTYPE entity PUBLIC "-//UC Berkeley//DTD MoML 1//EN"
"http://ptolemy.eecs.berkeley.edu/xml/dtd/MoML_1.dtd">
<entity name="memoryTest2" class="ptolemy.actor.TypedCompositeActor">
<property name="_createdBy" class="ptolemy.kernel.attributes.VersionAttribute" value="3.0.2">
</property>
<property name="DE Director" class="ptolemy.domains.de.kernel.DEDirector">
<property name="startTime" class="ptolemy.data.expr.Parameter" value="0.0">
</property>
<property name="stopTime" class="ptolemy.data.expr.Parameter" value="1.7976931348623E308">
</property>
<property name="stopWhenQueueIsEmpty" class="ptolemy.data.expr.Parameter" value="true">
</property>
<property name="synchronizeToRealTime" class="ptolemy.data.expr.Parameter" value="false">
</property>
<property name="isCQAdaptive" class="ptolemy.data.expr.Parameter" value="true">
</property>
<property name="minBinCount" class="ptolemy.data.expr.Parameter" value="2">
</property>
<property name="binCountFactor" class="ptolemy.data.expr.Parameter" value="2">
</property>
<property name="_location" class="ptolemy.kernel.util.Location" value="95.0, 35.0">
</property>
</property>
<property name="_windowProperties" class="ptolemy.actor.gui.WindowPropertiesAttribute" value="{bounds={104, 174, 815, 518}}">
</property>
<property name="_vergilSize" class="ptolemy.actor.gui.SizeAttribute" value="[600, 400]">
</property>
<property name="annotation" class="ptolemy.kernel.util.Attribute">
<property name="_hideName" class="ptolemy.kernel.util.SingletonAttribute">
</property>
<property name="_iconDescription" class="ptolemy.kernel.util.SingletonConfigurableAttribute">
<configure><svg><text x="20" y="20" style="font-size:14; font-family:SansSerif; fill:blue">after 6143 iterations java lang.OutOfMemory error
</text></svg></configure>
</property>
<property name="_smallIconDescription" class="ptolemy.kernel.util.SingletonConfigurableAttribute">
<configure>
<svg>
<text x="20" style="font-size:14; font-family:SansSerif; fill:blue" y="20">-A-</text>
</svg>
</configure>
</property>
<property name="_controllerFactory" class="ptolemy.vergil.basic.NodeControllerFactory">
</property>
<property name="_editorFactory" class="ptolemy.vergil.toolbox.AnnotationEditorFactory">
</property>
<property name="_location" class="ptolemy.kernel.util.Location" value="70.0, 235.0">
</property>
</property>
<entity name="SingleEvent" class="ptolemy.domains.de.lib.SingleEvent">
<property name="time" class="ptolemy.data.expr.Parameter" value="0.0">
</property>
<property name="value" class="ptolemy.data.expr.Parameter" value="{0.0944506216287, 0.0975191625284, 0.0944506216287, 0.0857999241191, 0.0730679504667, 0.0582762735578, 0.0434458637753, 0.0301629913445, 0.0193529221347, 0.0112813340563, 0.0084582314143, 0.0049053935788, 0.0027967090808, 0.0016312805584, 0.0010305804697, 7.414891291827E-4, 6.1146737601312E-4, 5.5677601186248E-4, 5.3524811455656E-4, 5.2731439069799E-4, 5.2457583224341E-4, 5.2369013529995E-4, 5.2342166719598E-4, 5.2334537982137E-4, 5.2332505352927E-4, 5.2331997439197E-4, 5.2331878392172E-4, 5.2331852216018E-4, 5.2331846815861E-4, 5.2331845770494E-4, 5.233184558059E-4, 5.2331845548212E-4, 5.2331845543031E-4, 5.2331845542253E-4, 5.2331845542143E-4, 5.2331845542128E-4, 5.2331845542126E-4, 5.2331845542126E-4, 5.2331845542126E-4, 5.2331845542126E-4, 5.2331845542126E-4, 5.2331845542126E-4, 5.2331845542126E-4, 5.2331845542126E-4, 5.2331845542126E-4, 5.2331845542126E-4, 5.2331845542126E-4, 5.2331845542126E-4, 5!
.2331845542126E-4, 5.2331845542126E-4, 5.2331845542126E-4, 5.2331845542126E-4, 5.2331845542126E-4, 5.2331845542126E-4, 5.2331845542126E-4, 5.2331845542126E-4, 5.2331845542126E-4, 5.2331845542128E-4, 5.2331845542143E-4, 5.2331845542253E-4, 5.2331845543031E-4, 5.2331845548212E-4, 5.233184558059E-4, 5.2331845770494E-4, 5.2331846815861E-4, 0.0, 5.2331878392172E-4, 5.2331997439197E-4, 5.2332505352927E-4, 5.2334537982137E-4, 5.2342166719598E-4, 5.2369013529995E-4, 5.2457583224341E-4, 5.2731439069799E-4, 5.3524811455656E-4, 5.5677601186248E-4, 6.1146737601312E-4, 7.414891291827E-4, 0.0010305804697, 0.0016312805584, 0.0027967090808, 0.0049053935788, 0.0084582314143, 0.0112813340563, 0.0193529221347, 0.0301629913445, 0.0434458637753, 0.0582762735578, 0.0730679504667, 0.0857999241191}">
</property>
<property name="_location" class="ptolemy.kernel.util.Location" value="90.0, 145.0">
</property>
<port name="output" class="ptolemy.actor.TypedIOPort">
<property name="output"/>
</port>
</entity>
<entity name="TimedDelay" class="ptolemy.domains.de.lib.TimedDelay">
<property name="delay" class="ptolemy.data.expr.Parameter" value="0.0">
</property>
<property name="_location" class="ptolemy.kernel.util.Location" value="295.0, 60.0">
</property>
<port name="input" class="ptolemy.domains.de.kernel.DEIOPort">
<property name="input"/>
<property name="_cardinal" class="ptolemy.kernel.util.StringAttribute" value="EAST">
</property>
</port>
<port name="output" class="ptolemy.domains.de.kernel.DEIOPort">
<property name="output"/>
<property name="_cardinal" class="ptolemy.kernel.util.StringAttribute" value="WEST">
</property>
</port>
</entity>
<entity name="Display" class="ptolemy.actor.lib.gui.Display">
<property name="rowsDisplayed" class="ptolemy.data.expr.Parameter" value="10">
</property>
<property name="columnsDisplayed" class="ptolemy.data.expr.Parameter" value="40">
</property>
<property name="title" class="ptolemy.kernel.util.StringAttribute">
</property>
<property name="_windowProperties" class="ptolemy.actor.gui.WindowPropertiesAttribute">
</property>
<property name="_location" class="ptolemy.kernel.util.Location" value="535.0, 125.0">
</property>
<port name="input" class="ptolemy.actor.TypedIOPort">
<property name="input"/>
<property name="multiport"/>
</port>
</entity>
<entity name="ArrayExtract" class="ptolemy.actor.lib.ArrayExtract">
<property name="sourcePosition" class="ptolemy.data.expr.Parameter" value="0">
</property>
<property name="extractLength" class="ptolemy.data.expr.Parameter" value="90">
</property>
<property name="destinationPosition" class="ptolemy.data.expr.Parameter" value="0">
</property>
<property name="outputArrayLength" class="ptolemy.data.expr.Parameter" value="90">
</property>
<property name="_location" class="ptolemy.kernel.util.Location" value="325.0, 145.0">
</property>
<port name="input" class="ptolemy.actor.TypedIOPort">
<property name="input"/>
</port>
<port name="output" class="ptolemy.actor.TypedIOPort">
<property name="output"/>
</port>
</entity>
<entity name="Counter" class="ptolemy.actor.lib.Counter">
<property name="_location" class="ptolemy.kernel.util.Location" value="515.0, 55.0">
</property>
<port name="increment" class="ptolemy.actor.TypedIOPort">
<property name="input"/>
</port>
<port name="decrement" class="ptolemy.actor.TypedIOPort">
<property name="input"/>
</port>
<port name="output" class="ptolemy.actor.TypedIOPort">
<property name="output"/>
</port>
</entity>
<relation name="relation" class="ptolemy.actor.TypedIORelation">
<vertex name="vertex1" value="485.0, 150.0">
</vertex>
</relation>
<relation name="relation5" class="ptolemy.actor.TypedIORelation">
</relation>
<relation name="relation3" class="ptolemy.actor.TypedIORelation">
<vertex name="vertex1" value="170.0, 145.0">
</vertex>
</relation>
<link port="SingleEvent.output" relation="relation3"/>
<link port="TimedDelay.input" relation="relation"/>
<link port="TimedDelay.output" relation="relation3"/>
<link port="Display.input" relation="relation"/>
<link port="Display.input" relation="relation5"/>
<link port="ArrayExtract.input" relation="relation3"/>
<link port="ArrayExtract.output" relation="relation"/>
<link port="Counter.increment" relation="relation"/>
<link port="Counter.output" relation="relation5"/>
</entity>