Package Name Number of Calls Cumulative Time Method Time
SimulationEngine MainEngine.writeFile(String, double, double) 8,064 159,967 (33.6%) 517 (0.1%)
SimulationEngine MainEngine.startSimulation() 1 290,664 (61.1%) 82 (0.0%)
SimulationEngine MainEngine.reportResults() 1,344 276,565 (58.1%) 69 (0.0%)
SimulationEngine MainEngine$1.compare(Object, Object) 31,611 49 (0.0%) 25 (0.0%)
SimulationEngine MainEngine$1.compare(Event, Event) 31,611 24 (0.0%) 24 (0.0%)
SimulationEngine MainEngine.getResourceValue(String) 8,064 78 (0.0%) 23 (0.0%)
SimulationEngine MainEngine.<init>(SimulationVisualization) 1 14 (0.0%) 14 (0.0%)
SimulationEngine MainEngine.initializeModules() 1 14 (0.0%) 14 (0.0%)
SimulationEngine MainEngine.generateTriggerEvent(double) 1,790 179 (0.0%) 7 (0.0%)
SimulationEngine MainEngine.initializeEngine() 1 71 (0.0%) 7 (0.0%)
SimulationEngine MainEngine.initializeEventQueue() 1 7 (0.0%) 7 (0.0%)
SimulationEngine MainEngine.generatePlots() 1 11,566 (2.4%) 3 (0.0%)
SimulationEngine Event.<init>() 1,790 3 (0.0%) 2 (0.0%)
SimulationEngine MainEngine.run() 1 290,666 (61.1%) 0 (0.0%)
SimulationEngine Event.getScheduledTime() 65,012 0 (0.0%) 0 (0.0%)
Table 4: Call graph usage statistics of iSimBioSys under the 60mins experimental setup: The highlighted regions show the key resource consuming methods of the simulation. The startSimulation() method is invoked at the start of the simulation and takes 61% of the CPU time, the main function within it being the invocation of the run() method of its thread. Another method which is invoked the highest number of times is the getScheduledTime() on an event object, since it reflects the call of the event scheduler. As the queue is implemented using the templatized priority queue of JDK 1.5, the holding time on the method is almost negligible.