/* * Created on Mar 29, 2011 by Nick * */ package jmsltestsuite; import java.util.Vector; import com.softsynth.jmsl.score.Score; import com.softsynth.jmsl.score.ScoreFrame; public class TestScoreMemoryUsage { long originalFreeMem; long finalFreeMem; Score score; ScoreFrame scoreFrame; Vector scoreFragments = new Vector(); void buildScores() { Runtime rt = Runtime.getRuntime(); long freeMemBeforeLittleScores = rt.freeMemory(); for (int i = 0; i < 1000; i++) { Score s = new Score(1, 600, 200); s.addMeasure(); s.addNote(4, 60, 0.5, 3); scoreFragments.addElement(s); finalFreeMem = rt.freeMemory(); if (i % 100 == 0) { System.out.println(i + " little scores so far, freemem=" + finalFreeMem); } } long memoryUsedByLittleScores = freeMemBeforeLittleScores - rt.freeMemory(); System.out.println("Memory used by little scores=" + finalFreeMem); } void report() { System.out.println("memory used: " + (finalFreeMem - originalFreeMem)); } void buildScore() { Runtime rt = Runtime.getRuntime(); originalFreeMem = rt.freeMemory(); System.out.println("Free mem before new Score: " + rt.freeMemory()); scoreFrame = new ScoreFrame(); score = new Score(1, 1000, 600); score.addMeasure(); score.addNote(1, 60, 0.5, 0.8); score.addNote(1, 62, 0.5, 0.8); score.addNote(1, 64, 0.5, 0.8); score.addNote(1, 65, 0.5, 0.8); System.out.println("Free mem after new Score: " + rt.freeMemory()); scoreFrame.addScore(score); scoreFrame.pack(); scoreFrame.setVisible(true); System.out.println("Free mem after Score Frame: " + rt.freeMemory()); } public static void main(String[] args) { Score.useSharedCanvas(false); TestScoreMemoryUsage test = new TestScoreMemoryUsage(); test.buildScore(); test.buildScores(); test.report(); } }