Changeset 523 for Tests


Ignore:
Timestamp:
03/31/12 12:39:04 (10 years ago)
Author:
BegemoT
Message:
 
Location:
Tests/JAVA/test
Files:
6 edited

Legend:

Unmodified
Added
Removed
  • Tests/JAVA/test/config.properties.template

    r490 r523  
    44general.benchmark-duration  = 30 
    55general.turns               = 5 
     6general.measurements        = 4 
    67 
    78general.affinity            = 0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15 
  • Tests/JAVA/test/src/main/java/test/helpers/Config.java

    r482 r523  
    77 
    88import com.google.common.base.Charsets; 
     9import com.google.common.collect.Sets; 
    910import com.google.common.io.Files; 
    1011 
     
    156157 
    157158    public void print( final PrintStream ps ) { 
    158         for ( final Entry<String, String> entry : properties.entrySet() ) { 
    159             ps.printf( "%s = %s\n", entry.getKey(), entry.getValue() ); 
     159        for ( final String key : Sets.newTreeSet( properties.keySet() ) ) { 
     160            final String value = properties.get( key ); 
     161            ps.printf( "%s = %s\n", key, value ); 
    160162        } 
    161163    } 
  • Tests/JAVA/test/src/main/java/test/threads/queue/stressed/AbstractTask.java

    r498 r523  
    104104 
    105105    @Override 
    106     public final BenchmarkResult execute( final long millisToBogus, 
    107                                           final long millisToMeasure ) { 
     106    public final BenchmarkResult[] execute( final long millisToBogus, 
     107                                            final long millisToMeasure, 
     108                                            final int measurements ) { 
    108109        checkState( initialized, "Can't execute uninitialized task" ); 
    109110        checkState( !executing, "Previous execution not finished yet" ); 
    110111        checkState( eventEnqueuer != null, "eventEnqueuer can't be null" ); 
     112        checkArgument( measurements >= 1, "measurements(%s) can't be <1", measurements ); 
    111113        executing = true; 
    112114        try { 
    113             return executeImpl( millisToBogus, millisToMeasure ); 
     115            return executeImpl( millisToBogus, millisToMeasure, measurements ); 
    114116        } catch ( Exception e ) { 
    115117            throw Throwables.propagate( e ); 
     
    126128    } 
    127129 
    128     protected BenchmarkResult executeImpl( final long millisToBogus, 
    129                                            final long millisToMeasure ) throws Exception { 
     130    protected BenchmarkResult[] executeImpl( final long millisToBogus, 
     131                                             final long millisToMeasure, 
     132                                             final int measurements ) throws Exception { 
    130133        eventEnqueuer.waitForInitialized(); 
    131134 
     
    133136        eventEnqueuer.waitForStarting(); 
    134137 
    135         //dequeue some packets before start timer -- to warm/fill up pipeline 
     138        //dequeue some packets before start timer to warm/fill up pipeline (not JIT!) 
    136139        final BenchmarkResult bogusResult = dequeueWhileTimeIsNotEllapsed( millisToBogus ); 
    137140 
    138  
    139         final BenchmarkResult measureResult = dequeueWhileTimeIsNotEllapsed( millisToMeasure ); 
    140  
    141         long eventsDequeued = bogusResult.turnsCompleted + measureResult.turnsCompleted; 
     141        final long msToOneMeasure = millisToMeasure / measurements; 
     142        checkState( 
     143                msToOneMeasure > 1, 
     144                "msToMeasure(%s) = millisToMeasure(%s)/measurements(%s) must be > 1", 
     145                msToOneMeasure, millisToMeasure, measurements 
     146        ); 
     147        final BenchmarkResult[] results = new BenchmarkResult[measurements]; 
     148        long packetsCompleted = 0; 
     149        for ( int i = 0; i < results.length; i++ ) { 
     150            results[i] = dequeueWhileTimeIsNotEllapsed( msToOneMeasure ); 
     151            packetsCompleted += results[i].packetsCompleted; 
     152        } 
     153 
     154        long eventsDequeued = bogusResult.packetsCompleted + packetsCompleted; 
    142155 
    143156        eventEnqueuer.pause(); 
     
    160173            } 
    161174        } 
    162         return measureResult; 
     175        return results; 
    163176    } 
    164177 
  • Tests/JAVA/test/src/main/java/test/threads/queue/stressed/ITask.java

    r482 r523  
    2121                            final EventFactory<E> eventFactory ); 
    2222 
    23     public BenchmarkResult execute( final long millisToBogus, 
    24                                     final long millisToMeasure ); 
     23    public BenchmarkResult[] execute( final long millisToBogus, 
     24                                    final long millisToMeasure, 
     25                                    final int turns ); 
    2526 
    2627    public void terminate(); 
     
    3132        public final long timeEllapsedNanoseconds; 
    3233 
    33         public final long turnsCompleted; 
     34        public final long packetsCompleted; 
    3435 
    3536        public BenchmarkResult( final long timeEllapsedMilliseconds, 
    3637                                final long timeEllapsedNanoseconds, 
    37                                 final long turnsCompleted ) { 
     38                                final long packetsCompleted ) { 
    3839            this.timeEllapsedMilliseconds = timeEllapsedMilliseconds; 
    3940            this.timeEllapsedNanoseconds = timeEllapsedNanoseconds; 
    40             this.turnsCompleted = turnsCompleted; 
     41            this.packetsCompleted = packetsCompleted; 
    4142        } 
    4243 
     
    4849                    taskName, 
    4950                    payload, 
    50                     turnsCompleted, payload, 
     51                    packetsCompleted, payload, 
    5152                    timeEllapsedMilliseconds, 
    52                     turnsCompleted * 1.0 / timeEllapsedMilliseconds 
     53                    packetsCompleted * 1.0 / timeEllapsedMilliseconds 
    5354 
    5455            ); 
     
    6263                    taskName, 
    6364                    payloadDescription, 
    64                     turnsCompleted, 
     65                    packetsCompleted, 
    6566                    timeEllapsedMilliseconds, 
    66                     turnsCompleted * 1.0 / timeEllapsedMilliseconds 
     67                    packetsCompleted * 1.0 / timeEllapsedMilliseconds 
    6768 
    6869            ); 
  • Tests/JAVA/test/src/main/java/test/threads/queue/stressed/SingleThreadedTask.java

    r498 r523  
    77import org.apache.commons.logging.LogFactory; 
    88import test.helpers.Config; 
    9  
    10 import static com.google.common.base.Preconditions.checkState; 
    119 
    1210/** 
     
    5654 
    5755    @Override 
    58     protected BenchmarkResult executeImpl( final long millisToBogus, 
    59                                            final long millisToMeasure ) throws Exception { 
     56    protected BenchmarkResult[] executeImpl( final long millisToBogus, 
     57                                             final long millisToMeasure, 
     58                                             final int measurements ) throws Exception { 
    6059        long eventsDequeued = 0; 
    6160 
    6261 
     62//        final long msToOneMeasure = millisToMeasure / measurements; 
    6363        long eventsAtStart = eventsDequeued; 
    6464        long startedAtMs = System.currentTimeMillis(); 
     
    8080                        eventsProcessed 
    8181                ); 
    82                 return result; 
     82                return new BenchmarkResult[]{ result }; 
    8383            } 
    8484        } 
  • Tests/JAVA/test/src/main/java/test/threads/queue/stressed/TaskBenchmark.java

    r483 r523  
    147147            ); 
    148148            final int turns = config.getAsInt( "general.turns", TURNS ); 
     149            final int measurements = config.getAsInt( "general.measurements", 1 ); 
    149150            System.out.printf( 
    150                     "%s: %d s for warm up, %d for benchmark, payload: %s, %d turns\n\n", 
     151                    "%s: %d s for warm up, %d for benchmark, payload: %s, %d turns of %d measurements\n\n", 
    151152                    task, 
    152153                    warmUpDurationMs / 1000, 
    153154                    benchmarkDurationMs / 1000, 
    154155                    usefulWorkFactory, 
    155                     turns 
     156                    turns, 
     157                    measurements 
    156158            ); 
    157159            log.info( "\n\n\n" ); 
    158160            try { 
    159                 {//warm up 
    160                     final BenchmarkResult result = task.execute( warmUpDurationMs, warmUpDurationMs ); 
    161                     System.out.println( "Warm up " + result.print( taskName, payloadID ) ); 
     161                {//warm up JIT 
     162                    final BenchmarkResult[] results = task.execute( warmUpDurationMs, warmUpDurationMs, 1 ); 
     163                    for ( final BenchmarkResult result : results ) { 
     164                        System.out.println( "Warm up " + result.print( taskName, payloadID ) ); 
     165                    } 
    162166                    System.out.println(); 
    163167                } 
    164168                for ( int i = 0; i < turns; i++ ) { 
    165                     final BenchmarkResult result = task.execute( warmUpDurationMs, benchmarkDurationMs ); 
    166  
    167                     System.out.println( result.print( taskName, payloadID ) ); 
    168  
    169                     log.info( result.printTabular( taskName, payloadID ) ); 
     169                    final BenchmarkResult[] results = task.execute( warmUpDurationMs, benchmarkDurationMs, measurements ); 
     170                    for ( final BenchmarkResult result : results ) { 
     171                        System.out.println( result.print( taskName, payloadID ) ); 
     172                        log.info( result.printTabular( taskName, payloadID ) ); 
     173                    } 
     174                    System.out.println(); 
     175                    log.info( "" ); 
    170176 
    171177                    System.gc(); 
Note: See TracChangeset for help on using the changeset viewer.