Author: burton Date: Thu Mar 3 16:14:19 2005 New Revision: 156106 URL: http://svn.apache.org/viewcvs?view=rev&rev=156106 Log: Fixed a reset bug when viewing benchmark values
Modified: jakarta/commons/sandbox/benchmark/trunk/src/java/org/apache/commons/benchmark/Benchmark.java jakarta/commons/sandbox/benchmark/trunk/src/java/org/apache/commons/benchmark/BenchmarkTracker.java jakarta/commons/sandbox/benchmark/trunk/src/test/org/apache/commons/benchmark/Test1.java Modified: jakarta/commons/sandbox/benchmark/trunk/src/java/org/apache/commons/benchmark/Benchmark.java URL: http://svn.apache.org/viewcvs/jakarta/commons/sandbox/benchmark/trunk/src/java/org/apache/commons/benchmark/Benchmark.java?view=diff&r1=156105&r2=156106 ============================================================================== --- jakarta/commons/sandbox/benchmark/trunk/src/java/org/apache/commons/benchmark/Benchmark.java (original) +++ jakarta/commons/sandbox/benchmark/trunk/src/java/org/apache/commons/benchmark/Benchmark.java Thu Mar 3 16:14:19 2005 @@ -113,12 +113,23 @@ this.name = name; + reset(); + + } + + /** + * Reset this benchmark. Used primarily with unit tests. + * + * @author <a href="mailto:[EMAIL PROTECTED]">Kevin A. Burton</a> + */ + void reset() { + tracker1 = new BenchmarkTracker( INTERVAL_1, this ); tracker5 = new BenchmarkTracker( INTERVAL_5, this ); tracker15 = new BenchmarkTracker( INTERVAL_15, this ); - - } + } + // **** metadata about this benchmark *************************************** /** @@ -141,7 +152,7 @@ * */ public BenchmarkTracker getTracker() { - return tracker1; + return getTracker( INTERVAL_1 ); } /** @@ -153,7 +164,7 @@ * calling getInterval( 900000 ) (which is 15 minutes in millis). * * @author <a href="mailto:[EMAIL PROTECTED]">Kevin A. Burton</a> - */ + ' */ public BenchmarkTracker getTracker( int interval ) { if ( interval < 1000 ) { @@ -164,11 +175,11 @@ } if ( interval == INTERVAL_1 ) { - return tracker1; + return tracker1.resetWhenNecessary(); } else if ( interval == INTERVAL_5 ) { - return tracker5; + return tracker5.resetWhenNecessary(); } else if ( interval == INTERVAL_15 ) { - return tracker15; + return tracker15.resetWhenNecessary(); } return null; Modified: jakarta/commons/sandbox/benchmark/trunk/src/java/org/apache/commons/benchmark/BenchmarkTracker.java URL: http://svn.apache.org/viewcvs/jakarta/commons/sandbox/benchmark/trunk/src/java/org/apache/commons/benchmark/BenchmarkTracker.java?view=diff&r1=156105&r2=156106 ============================================================================== --- jakarta/commons/sandbox/benchmark/trunk/src/java/org/apache/commons/benchmark/BenchmarkTracker.java (original) +++ jakarta/commons/sandbox/benchmark/trunk/src/java/org/apache/commons/benchmark/BenchmarkTracker.java Thu Mar 3 16:14:19 2005 @@ -78,7 +78,7 @@ this.parent = parent; } - void reset( long now ) { + BenchmarkTracker reset( long now ) { //need to perform a swap and save the current benchmark. totalStarted = started; @@ -89,12 +89,14 @@ started = 0; completed = 0; + return this; + } /** * Reset stats if necessary. */ - void resetWhenNecessary() { + BenchmarkTracker resetWhenNecessary() { long now = System.currentTimeMillis(); @@ -104,6 +106,8 @@ } + return this; + } void start() { Modified: jakarta/commons/sandbox/benchmark/trunk/src/test/org/apache/commons/benchmark/Test1.java URL: http://svn.apache.org/viewcvs/jakarta/commons/sandbox/benchmark/trunk/src/test/org/apache/commons/benchmark/Test1.java?view=diff&r1=156105&r2=156106 ============================================================================== --- jakarta/commons/sandbox/benchmark/trunk/src/test/org/apache/commons/benchmark/Test1.java (original) +++ jakarta/commons/sandbox/benchmark/trunk/src/test/org/apache/commons/benchmark/Test1.java Thu Mar 3 16:14:19 2005 @@ -1,5 +1,4 @@ /* -/* * Copyright 1999,2004 The Apache Software Foundation. * * Licensed under the Apache License, Version 2.0 (the "License"); @@ -27,12 +26,43 @@ super(testName); } - public void test1() { + //FIXME: test with using really short intervals but with diff values. + + public void testIntervalReset() throws Exception { + + Benchmark.INTERVAL_1 = 1000; + Benchmark.INTERVAL_5 = 5000; + Benchmark.INTERVAL_15 = 15000; + + Benchmark benchmark = Benchmark.getBenchmark( Test1.class ); + benchmark = benchmark.child( "main" ); + + benchmark.start(); + benchmark.complete(); + + assertEquals( 1, benchmark.getTracker( Benchmark.INTERVAL_1 ).getStarted() ); + assertEquals( 1, benchmark.getTracker( Benchmark.INTERVAL_1 ).getCompleted() ); + + assertEquals( 1, benchmark.getTracker( Benchmark.INTERVAL_5 ).getStarted() ); + assertEquals( 1, benchmark.getTracker( Benchmark.INTERVAL_15 ).getCompleted() ); + + Thread.sleep( 1000 ); + + assertEquals( 0, benchmark.getTracker( Benchmark.INTERVAL_1 ).getStarted() ); + + //reset all the trackers + benchmark.reset(); + + } + + public void testBasic() { Benchmark benchmark = Benchmark.getBenchmark( Test1.class ); benchmark = benchmark.child( "main" ); - assertEquals( benchmark.getName(), "org.apache.commons.benchmark.main" ); + System.out.println( "name: " + benchmark.getName() ); + + assertEquals( benchmark.getName(), "org.apache.commons.benchmark.Test1.main" ); int total = 60; --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]