neilg       2003/03/03 07:18:34

  Modified:    java/samples/xni Counter.java
  Log:
  when memory usage is enabled in this sample, the garbage collector should be 
explicitly run before the parse so that the statistics reflect the amount of memory 
the parse actually used, rather than that plus whatever was used by initial class 
loading etc.  The current code actually returns negative values for certain platforms; 
thanks to Steve Dulin for pointing this out.
  
  Revision  Changes    Path
  1.13      +12 -6     xml-xerces/java/samples/xni/Counter.java
  
  Index: Counter.java
  ===================================================================
  RCS file: /home/cvs/xml-xerces/java/samples/xni/Counter.java,v
  retrieving revision 1.12
  retrieving revision 1.13
  diff -u -r1.12 -r1.13
  --- Counter.java      13 Feb 2003 23:41:52 -0000      1.12
  +++ Counter.java      3 Mar 2003 15:18:34 -0000       1.13
  @@ -547,16 +547,22 @@
               // parse file
               try {
                   long timeBefore = System.currentTimeMillis();
  -                long memoryBefore = Runtime.getRuntime().freeMemory();
  +                long memoryBefore = 0; 
  +                if(memoryUsage) {
  +                    System.gc();
  +                    memoryBefore = Runtime.getRuntime().freeMemory();
  +                }
                   for (int j = 0; j < repetition; j++) {
                       parser.parse(new XMLInputSource(null, arg, null));
                   }
  -                long memoryAfter = Runtime.getRuntime().freeMemory();
  -                long timeAfter = System.currentTimeMillis();
  +                long memory = Long.MIN_VALUE;
  +                if(memoryUsage) {
  +                    long memoryAfter = Runtime.getRuntime().freeMemory();
  +                    memory = memoryBefore - memoryAfter;
  +                }
   
  +                long timeAfter = System.currentTimeMillis();
                   long time = timeAfter - timeBefore;
  -                long memory = memoryUsage
  -                            ? memoryBefore - memoryAfter : Long.MIN_VALUE;
                   ((Counter)parser).printResults(out, arg, time,
                                                  memory, tagginess,
                                                  repetition);
  
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to