ProjectTako / kparser

Automatically exported from code.google.com/p/kparser
1 stars 3 forks source link

Damage graph causing KParser run out of memory. #72

Closed GoogleCodeExporter closed 8 years ago

GoogleCodeExporter commented 8 years ago
What steps will reproduce the problem?
1. Open KParser
2. Open an old parse done one Gcolibris
3. Kparser hangs on trying to read it....
4. repeat same step but with Damage graph tab closed, no problem

What is the expected output? What do you see instead?

What version of the product are you using? On what operating system?
problem encountered on both 1.5.3 and 1.5.4.

Please provide any additional information below.
copy paste of the error logs:
lundi 26 avril 2010 11:36
WaywardGamers.KParser.ParserCore, Version=1.5.3.0, Culture=neutral, 
PublicKeyToken=null
Error severity level: Error

System.OutOfMemoryException

System.OutOfMemoryException: Une exception de 
type 'System.OutOfMemoryException' a été levée.
   à System.Collections.Generic.List`1.set_Capacity(Int32 value)
   à System.Collections.Generic.List`1.EnsureCapacity(Int32 min)
   à ZedGraph.PointPairList.Add(Double[] x, Double[] y)
   à ZedGraph.PointPairList..ctor(Double[] x, Double[] y)
   à WaywardGamers.KParser.Plugin.DamageGraphPlugin.ProcessIndividualDamage
(KPDatabaseDataSet dataSet, EnumerableRowCollection`1 attackSet, MobFilter 
mobFilter)
   à WaywardGamers.KParser.Plugin.DamageGraphPlugin.ProcessData
(KPDatabaseDataSet dataSet)
   à WaywardGamers.KParser.Plugin.BasePluginControl.HandleDataset
(KPDatabaseDataSet databaseChanges)

---------------------------------------------------------------
lundi 26 avril 2010 11:38
WaywardGamers.KParser.ParserCore, Version=1.5.3.0, Culture=neutral, 
PublicKeyToken=null
Error severity level: Error

System.OutOfMemoryException

System.OutOfMemoryException: Une exception de 
type 'System.OutOfMemoryException' a été levée.
   à WaywardGamers.KParser.Plugin.DamageGraphPlugin.AccumulateDamage(Double
[] sequenceDamage)
   à WaywardGamers.KParser.Plugin.DamageGraphPlugin.ProcessIndividualDamage
(KPDatabaseDataSet dataSet, EnumerableRowCollection`1 attackSet, MobFilter 
mobFilter)
   à WaywardGamers.KParser.Plugin.DamageGraphPlugin.ProcessData
(KPDatabaseDataSet dataSet)
   à WaywardGamers.KParser.Plugin.BasePluginControl.HandleDataset
(KPDatabaseDataSet databaseChanges)

---------------------------------------------------------------
samedi 1 mai 2010 14:03
WaywardGamers.KParser.ParserCore, Version=1.5.4.0, Culture=neutral, 
PublicKeyToken=null
Error severity level: Error

System.OutOfMemoryException

System.OutOfMemoryException: Une exception de 
type 'System.OutOfMemoryException' a été levée.
   à WaywardGamers.KParser.Plugin.DamageGraphPlugin.AccumulateDamage(Double
[] sequenceDamage)
   à WaywardGamers.KParser.Plugin.DamageGraphPlugin.ProcessIndividualDamage
(KPDatabaseDataSet dataSet, EnumerableRowCollection`1 attackSet, MobFilter 
mobFilter)
   à WaywardGamers.KParser.Plugin.DamageGraphPlugin.ProcessData
(KPDatabaseDataSet dataSet)
   à WaywardGamers.KParser.Plugin.BasePluginControl.HandleDataset
(KPDatabaseDataSet databaseChanges)
and attached the parse

Original issue reported on code.google.com by raphael.morineau@gmail.com on 1 May 2010 at 12:42

Attachments:

GoogleCodeExporter commented 8 years ago
Ok, reviewed and fixed the problem.

The provided parse covered a 2 month period, for 5.5 million seconds.  The 
program
was creating arrays for the damage for all of the players for all of those 
seconds,
requiring (at best) 8 * 8 * 5.5m * 2 = 700MB of RAM.  There's a possibility of
needing twice that, but I didn't do a full check on that.

It should now take no more than ~50 MB for the same dataset.  The time scale 
shown,
though, will be increased and fixed.  The sample parse, for example, requires 
an x16
scale.  As such, all data points on the graph will be in 16 second intervals 
rather
than 1 second intervals.

Original comment by Kinemati...@gmail.com on 2 May 2010 at 3:50