Changeset 482
- Timestamp:
- 03/24/12 20:16:55 (9 years ago)
- Location:
- Tests/JAVA/test
- Files:
-
- 5 added
- 33 edited
- 3 copied
- 1 moved
Legend:
- Unmodified
- Added
- Removed
-
Tests/JAVA/test/src/main/java/test/helpers/Config.java
r444 r482 22 22 23 23 public Config( final Properties properties ) { 24 putProperties( properties ); 25 } 26 27 private void putProperties( final Properties properties ) { 24 28 for ( final Entry<Object, Object> entry : properties.entrySet() ) { 25 29 this.properties.put( … … 42 46 r.close(); 43 47 } 48 } 49 50 public void append( final Properties p ) { 51 putProperties( p ); 44 52 } 45 53 … … 146 154 } 147 155 } 156 157 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() ); 160 } 161 } 148 162 } -
Tests/JAVA/test/src/main/java/test/threads/queue/stressed/ABQxNTask.java
r460 r482 64 64 lastEmulator = emulators[nodes - 1]; 65 65 66 return new Enqueuer( inbox );66 return new Enqueuer( eventsInBatch(), eventFactory, inbox ); 67 67 } 68 68 … … 136 136 } 137 137 138 private class Enqueuer extends EventEnqueuer {138 private class Enqueuer extends EventEnqueuer<E> { 139 139 private final BlockingQueue<E> inbox; 140 140 141 private Enqueuer( final BlockingQueue<E> inbox ) { 141 private Enqueuer( final int eventsInBatch, 142 final EventFactory<E> factory, 143 final BlockingQueue<E> inbox ) { 144 super( eventsInBatch, factory ); 142 145 this.inbox = inbox; 143 146 } -
Tests/JAVA/test/src/main/java/test/threads/queue/stressed/AbstractTask.java
r480 r482 2 2 3 3 import java.util.concurrent.Executor; 4 import java.util.concurrent.atomic.AtomicIntegerFieldUpdater;5 4 6 5 import com.google.common.base.Throwables; … … 9 8 import org.apache.commons.logging.LogFactory; 10 9 import test.helpers.Config; 11 import test.threads.queue.stressed.AbstractTask.FSM.State; 10 import test.threads.queue.common.BaseEnqueuer; 11 import test.threads.queue.common.FSM.State; 12 12 13 13 import static com.google.common.base.Preconditions.checkArgument; … … 47 47 private boolean initialized = false; 48 48 private EventFactory<E> eventFactory = null; 49 private EventEnqueuer eventEnqueuer = null;49 private BaseEnqueuer eventEnqueuer = null; 50 50 private Executor threadPool = null; 51 51 … … 91 91 } 92 92 93 protected abstract EventEnqueuer _initialize( final Executor threadPool,94 95 93 protected abstract BaseEnqueuer _initialize( final Executor threadPool, 94 final IUsefulWorkEmulator<E>[] emulators, 95 final EventFactory<E> factory ) throws Exception; 96 96 97 97 @Override … … 134 134 135 135 eventEnqueuer.pause(); 136 //wait for packets exhausted 136 137 Thread.yield(); 137 //wait for packets exhausted 138 while ( eventEnqueuer.eventsEnqueued() > eventsDequeued 139 || !eventEnqueuer.is( State.WAITING ) ) { 138 while ( !eventEnqueuer.is( State.WAITING ) ) { 139 while ( eventEnqueuer.eventsEnqueued() > eventsDequeued ) { 140 140 // log.info( "Waiting for " + eventEnqueuer.eventsEnqueued() + " > " + eventsDequeued ); 141 dequeueBatchEvents( eventsInBatch ); 142 eventsDequeued += eventsInBatch; 141 dequeueBatchEvents( eventsInBatch ); 142 eventsDequeued += eventsInBatch; 143 } 144 Thread.yield(); 143 145 } 144 146 return measureResult; … … 181 183 } 182 184 183 protected abstract class EventEnqueuer implements Runnable { 184 185 private final FSM fsm = new FSM(); 186 187 private volatile long eventsEnqueued = 0; 185 protected abstract static class EventEnqueuer<E> extends BaseEnqueuer<E> { 186 187 private final EventFactory<E> eventFactory; 188 189 190 public EventEnqueuer( final int eventsInBatch, 191 final EventFactory<E> eventFactory ) { 192 super( eventsInBatch ); 193 this.eventFactory = eventFactory; 194 } 188 195 189 196 @Override 190 public void run() { 191 try { 192 final int eventsInBatch = eventsInBatch(); 193 final EventFactory<E> factory = eventFactory(); 194 fsm.initialize(); 195 do { 196 final State state = fsm.autoTransition(); 197 switch ( state ) { 198 case WAITING: 199 waiting(); 200 break; 201 case RUNNING: 202 running( eventsInBatch, factory ); 203 break; 204 case TERMINATING: 205 log.info( "EventEnqueuer terminating" ); 206 return; 207 default: 208 throw new IllegalStateException( "Unexpected state: " + state ); 209 210 } 211 } while ( true ); 212 } catch ( InterruptedException e ) { 213 log.info( "EventEnqueuer interrupted" ); 214 } catch ( Throwable t ) { 215 log.error( "EventEnqueuer exited unexpectedly", t ); 216 throw Throwables.propagate( t ); 217 } 218 } 219 220 private void waiting() throws InterruptedException { 221 while ( fsm.is( State.WAITING ) ) { 222 Thread.yield(); 223 if ( Thread.interrupted() ) { 224 throw new InterruptedException(); 225 } 226 } 227 } 228 229 private void running( final int eventsInBatch, 230 final EventFactory<E> factory ) throws Exception { 231 eventsEnqueued = 0; 232 while ( fsm.is( State.RUNNING ) ) { 233 enqueueEventsBatch( eventsInBatch, factory ); 234 eventsEnqueued += eventsInBatch; 235 } 197 protected void enqueueEventsBatch( final int eventsInBatch ) throws Exception { 198 enqueueEventsBatch( eventsInBatch, eventFactory ); 236 199 } 237 200 … … 239 202 final EventFactory<E> factory ) throws Exception; 240 203 241 public void waitForInitialized() { 242 while ( !fsm.is( State.WAITING ) ) { 243 Thread.yield(); 244 } 245 } 246 247 public void start() { 248 fsm.start(); 249 } 250 251 public void waitForStarting() { 252 fsm.waitForState( State.RUNNING ); 253 } 254 255 public void pause() { 256 fsm.pause(); 257 } 258 259 public void waitForPausing() { 260 fsm.waitForState( State.WAITING ); 261 } 262 263 public boolean is( final State expected ) { 264 return fsm.is( expected ); 265 } 266 267 public void terminate() { 268 fsm.terminate(); 269 } 270 271 public long eventsEnqueued() { 272 return eventsEnqueued; 273 } 274 } 275 276 public static class FSM { 277 public enum State { 278 UNINITIALIZED, 279 280 BEFORE_RUN, 281 RUNNING, 282 283 BEFORE_WAIT, 284 WAITING, 285 286 BEFORE_TERMINATE, 287 TERMINATING 288 } 289 290 private static final State[] STATES = State.values(); 291 292 private static final AtomicIntegerFieldUpdater<FSM> UPDATER = AtomicIntegerFieldUpdater.newUpdater( 293 FSM.class, 294 "state" 295 ); 296 297 public volatile long $p1, $p2, $p3, $p4, $p5, $p6 = 7L; 298 299 private volatile int state = State.UNINITIALIZED.ordinal(); 300 301 public volatile long $p7, $p8, $p9, $p10, $p11, $p12 = 7L; 302 303 private boolean CAS( final State expected, 304 final State changeTo ) { 305 return UPDATER.compareAndSet( this, expected.ordinal(), changeTo.ordinal() ); 306 } 307 308 private void changeState( final State expected, 309 final State changeTo ) throws IllegalStateException { 310 if ( !CAS( expected, changeTo ) ) { 311 throw new IllegalStateException( "Unexpected state " + state() + " for transition (" + expected + " -> " + changeTo + ")" ); 312 } 313 // log.debug( "transfer( " + expected + " -> " + changeTo + " )" ); 314 } 315 316 public State autoTransition() { 317 final State s = state(); 318 switch ( s ) { 319 case BEFORE_WAIT: 320 changeState( State.BEFORE_WAIT, State.WAITING ); 321 return State.WAITING; 322 case BEFORE_RUN: 323 changeState( State.BEFORE_RUN, State.RUNNING ); 324 return State.RUNNING; 325 case BEFORE_TERMINATE: 326 changeState( State.BEFORE_TERMINATE, State.TERMINATING ); 327 return State.TERMINATING; 328 default: 329 return s; 330 } 331 } 332 333 public boolean is( final State expected ) { 334 return stateOrdinal() == expected.ordinal(); 335 } 336 337 public State state() { 338 return STATES[this.state]; 339 } 340 341 public int stateOrdinal() { 342 return this.state; 343 } 344 345 public void waitForState( final State expected ) { 346 while ( stateOrdinal() != expected.ordinal() ) { 347 Thread.yield(); 348 } 349 } 350 351 public void initialize() { 352 changeState( State.UNINITIALIZED, State.BEFORE_WAIT ); 353 } 354 355 public void start() { 356 changeState( State.WAITING, State.BEFORE_RUN ); 357 // waitForState( State.RUNNING ); 358 } 359 360 public void pause() { 361 changeState( State.RUNNING, State.BEFORE_WAIT ); 362 // waitForState( State.WAITING ); 363 } 364 365 public void terminate() { 366 final State s = state(); 367 switch ( s ) { 368 case WAITING: 369 case RUNNING: 370 changeState( s, State.BEFORE_TERMINATE ); 371 break; 372 373 case BEFORE_TERMINATE: 374 break;//nothing to do here 375 376 // case BEFORE_WAIT: 377 // case BEFORE_RUN: 378 default: 379 throw new IllegalStateException( "Unexpected state " + s + " for terminate()" ); 380 } 381 waitForState( State.TERMINATING ); 382 } 383 } 204 } 205 384 206 } -
Tests/JAVA/test/src/main/java/test/threads/queue/stressed/DxNTask.java
r477 r482 86 86 } 87 87 88 return new Enqueuer( ringBuffer );88 return new Enqueuer( eventsInBatch(), eventFactory, ringBuffer ); 89 89 } 90 90 … … 147 147 } 148 148 149 private class Enqueuer extends EventEnqueuer {149 private class Enqueuer extends EventEnqueuer<E> { 150 150 private final RingBuffer<E> ringBuffer; 151 151 152 private Enqueuer( final RingBuffer<E> ringBuffer ) { 152 private Enqueuer( final int eventsInBatch, 153 final EventFactory<E> factory, 154 final RingBuffer<E> ringBuffer ) { 155 super( eventsInBatch, factory ); 153 156 this.ringBuffer = ringBuffer; 154 157 } -
Tests/JAVA/test/src/main/java/test/threads/queue/stressed/ITask.java
r460 r482 42 42 43 43 public String print( final String taskName, 44 final String wasterID, 45 final int opsPerPacket ) { 44 final String payload ) { 46 45 return String.format( 47 46 Locale.US, 48 "%s@%s: %d packets of % d ops, takes %d ms (%.1f packets/ms, %.1f ops/ms)",47 "%s@%s: %d packets of %s, takes %d ms (%.1f packets/ms)", 49 48 taskName, 50 wasterID,51 turnsCompleted, opsPerPacket,49 payload, 50 turnsCompleted, payload, 52 51 timeEllapsedMilliseconds, 53 turnsCompleted * 1.0 / timeEllapsedMilliseconds, 54 turnsCompleted * 1.0 * opsPerPacket / timeEllapsedMilliseconds 52 turnsCompleted * 1.0 / timeEllapsedMilliseconds 55 53 56 54 ); … … 58 56 59 57 public String printTabular( final String taskName, 60 final String wasterID, 61 final int opsPerPacket ) { 58 final String payloadDescription ) { 62 59 return String.format( 63 60 Locale.US, 64 "%s@%s\t%d\t%d\t% d\t%.1f\t%.1f",61 "%s@%s\t%d\t%d\t%.1f", 65 62 taskName, 66 wasterID,67 turnsCompleted, opsPerPacket,63 payloadDescription, 64 turnsCompleted, 68 65 timeEllapsedMilliseconds, 69 turnsCompleted * 1.0 / timeEllapsedMilliseconds, 70 turnsCompleted * 1.0 * opsPerPacket / timeEllapsedMilliseconds 66 turnsCompleted * 1.0 / timeEllapsedMilliseconds 71 67 72 68 ); -
Tests/JAVA/test/src/main/java/test/threads/queue/stressed/IUsefulWorkFactory.java
r433 r482 11 11 public interface IUsefulWorkFactory<E> extends EventFactory<E> { 12 12 13 public void initialize( final int workSizePerEmulator );14 15 13 public IUsefulWorkEmulator<E>[] createEmulators( final int count ); 16 14 } -
Tests/JAVA/test/src/main/java/test/threads/queue/stressed/SingleThreadedTask.java
r480 r482 46 46 final EventFactory<E> factory ) throws Exception { 47 47 this.emulator = emulators[0]; 48 return new EventEnqueuer () {48 return new EventEnqueuer<E>( eventsInBatch(), factory ) { 49 49 @Override 50 50 protected void enqueueEventsBatch( final int eventsInBatch, -
Tests/JAVA/test/src/main/java/test/threads/queue/stressed/TaskBenchmark.java
r474 r482 6 6 import java.text.ParseException; 7 7 import java.util.Arrays; 8 import java.util.Properties; 8 9 import java.util.concurrent.*; 9 10 11 import org.apache.commons.cli.*; 10 12 import org.apache.commons.logging.Log; 11 13 import org.apache.commons.logging.LogFactory; … … 18 20 import test.threads.queue.stressed.memory.MemoryWasterFactory; 19 21 import test.threads.queue.unstressed.BenchmarkThreadFactory; 20 21 import static com.google.common.base.Preconditions.checkArgument; 22 import test.threads.queue.unstressed.DummyWasterFactory; 22 23 23 24 /** … … 37 38 private static final long DEFAULT_WARMUP_DURATION_SECONDS = 30;//=30 sec 38 39 40 private static final String DEFAULT_CONFIG_FILE = "./config.properties"; 41 39 42 40 43 /** Arguments: (taskClass: "...") (usefulWorkFactoryID: "cpu"/"memory"/...) [taskSize: long] */ … … 55 58 ); 56 59 57 final String taskClass = args[0]; 58 final String usefulWorkFactoryID = args[1]; 59 60 final int opsPerPacket = Integer.parseInt( args[2] ); 61 62 final Config config = Config.load( new File( "./config.properties" ) ); 63 64 final ThreadFactory threadFactory = createThreadFactory( config ); 65 66 //create task 67 final ITask task = createTaskInstance( taskClass, config ); 68 69 final int workersCount = task.workersRequired(); 70 checkArgument( opsPerPacket % workersCount == 0, "opsPerPacket(%s) % workerCount(%s) must be 0", opsPerPacket, workersCount ); 71 //create pool 72 final ExecutorService pool = Executors.newFixedThreadPool( workersCount, threadFactory ); 73 74 //create stress factory 75 final IUsefulWorkFactory usefulWorkFactory = createUsefulWorkFactory( usefulWorkFactoryID ); 76 77 final int opsPerNode = opsPerPacket / workersCount; 78 usefulWorkFactory.initialize( opsPerNode ); 79 final IUsefulWorkEmulator[] emulators = usefulWorkFactory.createEmulators( workersCount ); 80 81 task.initialize( pool, emulators, usefulWorkFactory ); 82 83 84 final String taskName = task.toString(); 85 final String wasterID = usefulWorkFactory.toString(); 86 87 final long benchmarkDurationMs = TimeUnit.SECONDS.toMillis( 88 config.getAsLong( 89 "general.benchmark-duration", 90 DEFAULT_BENCHMARK_DURATION_SECONDS 91 ) 92 ); 93 final long warmUpDurationMs = TimeUnit.SECONDS.toMillis( 94 config.getAsLong( 95 "general.warm-up-duration", 96 DEFAULT_WARMUP_DURATION_SECONDS 97 ) 98 ); 99 final int turns = config.getAsInt( "general.turns", TURNS ); 100 System.out.printf( 101 "%s: %d s for warm up, %d for benchmark, %d ops per packet, %d turns\n\n", 102 task, 103 warmUpDurationMs / 1000, 104 benchmarkDurationMs / 1000, 105 opsPerPacket, 106 turns 107 ); 108 log.info( "\n\n\n" ); 60 final Options options = new Options(); 61 options.addOption( OptionBuilder.withLongOpt( "task" ) 62 .withDescription( "class of task to benchmark" ) 63 .hasArg() 64 .isRequired() 65 .withArgName( "TASK" ) 66 .create() 67 ); 68 options.addOption( OptionBuilder.withLongOpt( "payload" ) 69 .withDescription( "type of payload for benchmark" ) 70 .hasArg() 71 .isRequired() 72 .withArgName( "payload" ) 73 .create() 74 ); 75 76 options.addOption( OptionBuilder.withLongOpt( "opsPerPacket" ) 77 .withDescription( "operations per packet" ) 78 .hasArg() 79 .isRequired() 80 .withArgName( "opsPerPacket" ) 81 .create() 82 ); 83 options.addOption( OptionBuilder.withLongOpt( "config" ) 84 .withDescription( ".properties file containing configuration data (default is " + DEFAULT_CONFIG_FILE + ")" ) 85 .hasArg() 86 .withArgName( "CONFIG" ) 87 .create() 88 ); 89 options.addOption( OptionBuilder.withArgName( "property=value" ) 90 .hasArgs( 2 ) 91 .withValueSeparator() 92 .withDescription( "use value for given property" ) 93 .create( "D" ) 94 ); 95 96 final CommandLineParser parser = new GnuParser(); 109 97 try { 110 {//warm up 111 final BenchmarkResult result = task.execute( warmUpDurationMs, warmUpDurationMs ); 112 System.out.println( "Warm up " + result.print( taskName, wasterID, opsPerPacket ) ); 113 System.out.println(); 98 final CommandLine cmd = parser.parse( options, args ); 99 100 101 final String taskClass = cmd.getOptionValue( "task" ); 102 final String usefulWorkFactoryID = cmd.getOptionValue( "payload" ); 103 104 // final int opsPerPacket = Integer.parseInt( cmd.getOptionValue( "opsPerPacket" ) ); 105 106 final String configFile; 107 if ( cmd.hasOption( "config" ) ) { 108 configFile = cmd.getOptionValue( "config" ); 109 } else { 110 configFile = DEFAULT_CONFIG_FILE; 114 111 } 115 for ( int i = 0; i < turns; i++ ) { 116 final BenchmarkResult result = task.execute( warmUpDurationMs, benchmarkDurationMs ); 117 118 System.out.println( result.print( taskName, wasterID, opsPerPacket ) ); 119 120 log.info( result.printTabular( taskName, wasterID, opsPerPacket ) ); 121 122 System.gc(); 123 System.gc(); 124 Thread.sleep( 500 );//give GC time to finish async tasks 112 final Config config = Config.load( new File( configFile ) ); 113 114 final Properties properties = cmd.getOptionProperties( "D" ); 115 config.append( properties ); 116 117 config.print( System.out ); 118 119 final ThreadFactory threadFactory = createThreadFactory( config ); 120 121 //create task 122 final ITask task = createTaskInstance( taskClass, config ); 123 124 final int workersCount = task.workersRequired(); 125 //create pool 126 final ExecutorService pool = Executors.newFixedThreadPool( workersCount, threadFactory ); 127 128 //create stress factory 129 final IUsefulWorkFactory usefulWorkFactory = createUsefulWorkFactory( 130 usefulWorkFactoryID, 131 config 132 ); 133 134 // final int opsPerNode = opsPerPacket / workersCount; 135 final IUsefulWorkEmulator[] emulators = usefulWorkFactory.createEmulators( workersCount ); 136 137 task.initialize( pool, emulators, usefulWorkFactory ); 138 139 140 final String taskName = task.toString(); 141 final String payloadID = usefulWorkFactory.toString(); 142 143 final long benchmarkDurationMs = TimeUnit.SECONDS.toMillis( 144 config.getAsLong( 145 "general.benchmark-duration", 146 DEFAULT_BENCHMARK_DURATION_SECONDS 147 ) 148 ); 149 final long warmUpDurationMs = TimeUnit.SECONDS.toMillis( 150 config.getAsLong( 151 "general.warm-up-duration", 152 DEFAULT_WARMUP_DURATION_SECONDS 153 ) 154 ); 155 final int turns = config.getAsInt( "general.turns", TURNS ); 156 System.out.printf( 157 "%s: %d s for warm up, %d for benchmark, payload: %s, %d turns\n\n", 158 task, 159 warmUpDurationMs / 1000, 160 benchmarkDurationMs / 1000, 161 usefulWorkFactory, 162 turns 163 ); 164 log.info( "\n\n\n" ); 165 try { 166 {//warm up 167 final BenchmarkResult result = task.execute( warmUpDurationMs, warmUpDurationMs ); 168 System.out.println( "Warm up " + result.print( taskName, payloadID ) ); 169 System.out.println(); 170 } 171 for ( int i = 0; i < turns; i++ ) { 172 final BenchmarkResult result = task.execute( warmUpDurationMs, benchmarkDurationMs ); 173 174 System.out.println( result.print( taskName, payloadID ) ); 175 176 log.info( result.printTabular( taskName, payloadID ) ); 177 178 System.gc(); 179 System.gc(); 180 Thread.sleep( 500 );//give GC time to finish async tasks 181 } 182 } catch ( Exception e ) { 183 e.printStackTrace( System.err ); 184 } finally { 185 task.terminate(); 186 187 pool.shutdown(); 188 pool.awaitTermination( 1, TimeUnit.SECONDS ); 189 pool.shutdownNow(); 125 190 } 126 } catch ( Exception e ) { 127 e.printStackTrace( System.err ); 128 } finally { 129 task.terminate(); 130 131 pool.shutdown(); 132 pool.awaitTermination( 1, TimeUnit.SECONDS ); 133 pool.shutdownNow(); 134 } 135 System.exit( 0 ); 191 System.exit( 0 ); 192 } catch ( org.apache.commons.cli.ParseException e ) { 193 log.error( "Error parsing command line arguments", e ); 194 } 195 final HelpFormatter formatter = new HelpFormatter(); 196 formatter.printHelp( "vanga", options ); 136 197 } 137 198 … … 147 208 } 148 209 149 private static IUsefulWorkFactory<?> createUsefulWorkFactory( final String usefulWorkFactoryID ) throws InstantiationException, IllegalAccessException, ClassNotFoundException { 210 private static IUsefulWorkFactory<?> createUsefulWorkFactory( final String usefulWorkFactoryID, 211 final Config config ) throws InstantiationException, IllegalAccessException, ClassNotFoundException { 150 212 if ( "cpu".equals( usefulWorkFactoryID ) ) { 151 return new CPUWasterFactory( );213 return new CPUWasterFactory( config ); 152 214 } else if ( "memory".equals( usefulWorkFactoryID ) ) { 153 return new MemoryWasterFactory( );215 return new MemoryWasterFactory( config ); 154 216 } else if ( "cpu-memory".equals( usefulWorkFactoryID ) ) { 155 return new CPUMemoryWasterFactory(); 217 return new CPUMemoryWasterFactory( config ); 218 } else if ( "none".equals( usefulWorkFactoryID ) ) { 219 return new DummyWasterFactory( config ); 156 220 } 157 221 throw new UnsupportedOperationException( "Method is not implemented for " + usefulWorkFactoryID ); -
Tests/JAVA/test/src/main/java/test/threads/queue/stressed/cpu/CPUWasterFactory.java
r458 r482 4 4 5 5 import net.jcip.annotations.NotThreadSafe; 6 import test.helpers.Config; 6 7 import test.threads.queue.stressed.IUsefulWorkEmulator; 7 8 import test.threads.queue.stressed.IUsefulWorkFactory; … … 18 19 public class CPUWasterFactory implements IUsefulWorkFactory<LongValueMessage> { 19 20 21 private final int opsPerPacket; 22 23 public CPUWasterFactory( final Config config ) { 24 opsPerPacket = config.getAsInt( "payload.ops-per-packet" ); 25 } 26 20 27 private int operationsPerNode; 21 28 22 29 @Override 23 public void initialize( final int workSizePerEmulator) {24 this.operationsPerNode = workSizePerEmulator;25 }30 public IUsefulWorkEmulator<LongValueMessage>[] createEmulators( final int count ) { 31 checkArgument( opsPerPacket % count == 0, "opsPerPacket(%s) % workerCount(%s) must be 0", opsPerPacket, count ); 32 operationsPerNode = opsPerPacket/count; 26 33 27 @Override28 public IUsefulWorkEmulator<LongValueMessage>[] createEmulators( final int count ) {29 34 final IUsefulWorkEmulator<LongValueMessage>[] emulators = new IUsefulWorkEmulator[count]; 30 35 final CPUTimeWaster cpuTimeWaster = new CPUTimeWaster( operationsPerNode ); -
Tests/JAVA/test/src/main/java/test/threads/queue/stressed/memory/CPUMemoryWasterFactory.java
r458 r482 5 5 import net.jcip.annotations.Immutable; 6 6 import net.jcip.annotations.NotThreadSafe; 7 import test.helpers.Config; 7 8 import test.threads.queue.stressed.IUsefulWorkEmulator; 8 9 import test.threads.queue.stressed.IUsefulWorkFactory; … … 17 18 public class CPUMemoryWasterFactory implements IUsefulWorkFactory<LongArrayMessage> { 18 19 20 private final int opsPerPacket; 21 22 public CPUMemoryWasterFactory( final Config config ) { 23 opsPerPacket = config.getAsInt( "payload.ops-per-packet" ); 24 } 25 19 26 private int size = -1; 20 27 21 28 @Override 22 public void initialize( final int workSizePerEmulator) {23 this.size = workSizePerEmulator;24 }29 public IUsefulWorkEmulator<LongArrayMessage>[] createEmulators( final int count ) { 30 checkArgument( opsPerPacket % count == 0, "opsPerPacket(%s) % workerCount(%s) must be 0", opsPerPacket, count ); 31 size = opsPerPacket / count; 25 32 26 @Override27 public IUsefulWorkEmulator<LongArrayMessage>[] createEmulators( final int count ) {28 33 final IUsefulWorkEmulator<LongArrayMessage>[] emulators = new IUsefulWorkEmulator[count]; 29 34 -
Tests/JAVA/test/src/main/java/test/threads/queue/stressed/memory/MemoryWasterFactory.java
r459 r482 5 5 import net.jcip.annotations.Immutable; 6 6 import net.jcip.annotations.NotThreadSafe; 7 import test.helpers.Config; 7 8 import test.threads.queue.stressed.IUsefulWorkEmulator; 8 9 import test.threads.queue.stressed.IUsefulWorkFactory; 10 11 import static com.google.common.base.Preconditions.checkArgument; 9 12 10 13 /** … … 15 18 public class MemoryWasterFactory implements IUsefulWorkFactory<LongArrayMessage> { 16 19 20 private final int opsPerPacket; 21 22 public MemoryWasterFactory( final Config config ) { 23 opsPerPacket = config.getAsInt( "payload.ops-per-packet" ); 24 } 25 17 26 private int size = -1; 18 27 19 28 @Override 20 public void initialize( final int workSizePerEmulator) {21 this.size = workSizePerEmulator;22 }29 public IUsefulWorkEmulator<LongArrayMessage>[] createEmulators( final int count ) { 30 checkArgument( opsPerPacket % count == 0, "opsPerPacket(%s) % workerCount(%s) must be 0", opsPerPacket, count ); 31 size = opsPerPacket / count; 23 32 24 @Override25 public IUsefulWorkEmulator<LongArrayMessage>[] createEmulators( final int count ) {26 33 final IUsefulWorkEmulator<LongArrayMessage>[] emulators = new IUsefulWorkEmulator[count]; 27 34 -
Tests/JAVA/test/src/main/java/test/threads/queue/unstressed/DisruptorTask.java
r477 r482 1 package test.threads.queue. stressed;1 package test.threads.queue.unstressed; 2 2 3 import java.util.List;4 3 import java.util.concurrent.Executor; 5 4 6 import com.google.common.collect.Lists;7 5 import com.lmax.disruptor.*; 8 6 import org.apache.commons.logging.Log; 9 7 import org.apache.commons.logging.LogFactory; 10 8 import test.helpers.Config; 9 import test.threads.queue.stressed.AbstractTask; 10 import test.threads.queue.stressed.IUsefulWorkEmulator; 11 11 12 12 /** 13 * (source) -> 0 -> 1 -> 2 -> ... -> N13 * (source) -> destination 14 14 * 15 15 * @author cheremin 16 16 * @since 27.02.12, 15:00 17 17 */ 18 public class D xNTask<E> extends AbstractTask<E> {19 private static final Log log = LogFactory.getLog( D xNTask.class );18 public class DisruptorTask<E> extends AbstractTask<E> { 19 private static final Log log = LogFactory.getLog( DisruptorTask.class ); 20 20 21 21 private final WaitStrategy waitStrategy; 22 22 private final boolean publishInBatch; 23 23 24 private final int nodes; 25 26 public DxNTask( final Config config ) throws ClassNotFoundException, InstantiationException, IllegalAccessException { 24 public DisruptorTask( final Config config ) throws ClassNotFoundException, InstantiationException, IllegalAccessException { 27 25 super( config ); 28 26 … … 32 30 ); 33 31 34 this.nodes = config.getAsInt( "pipeline.nodes" );35 32 this.publishInBatch = config.getAsBoolean( "disruptor.publish-in-batch", false ); 36 33 } … … 38 35 39 36 private RingBuffer<E> ringBuffer; 40 private EventProcessor[] processors;41 42 @Override43 public int workersRequired() {44 return nodes;45 }46 37 47 38 private SequenceBarrier lastSequenceBarrier; 39 48 40 private final Sequence lastSequence = new Sequence( Sequencer.INITIAL_CURSOR_VALUE ); 49 private IUsefulWorkEmulator<E> lastEmulator;50 51 41 @Override 52 42 protected EventEnqueuer _initialize( final Executor threadPool, … … 61 51 ); 62 52 63 SequenceBarrier previousBarrier = ringBuffer.newBarrier(); 64 final List<EventProcessor> processors = Lists.newArrayList(); 65 for ( int i = 0; i < nodes - 1; i++ ) { 66 final IUsefulWorkEmulator<E> emulator = emulators[i]; 67 final PassThroughHandler<E> handler = new PassThroughHandler<E>( emulator ); 68 final BatchEventProcessor<E> processor = new BatchEventProcessor<E>( 69 ringBuffer, 70 previousBarrier, 71 handler 72 ); 73 previousBarrier = ringBuffer.newBarrier( processor.getSequence() ); 74 processors.add( processor ); 75 } 53 final SequenceBarrier barrier = ringBuffer.newBarrier(); 76 54 77 this.processors = processors.toArray( new EventProcessor[0] ); 78 79 lastSequenceBarrier = previousBarrier; 80 lastEmulator = emulators[emulators.length - 1]; 55 lastSequenceBarrier = barrier; 81 56 82 57 ringBuffer.setGatingSequences( lastSequence ); 83 58 84 for ( final EventProcessor processor : processors ) { 85 threadPool.execute( processor ); 86 } 87 88 return new Enqueuer( ringBuffer ); 59 return new Enqueuer( eventsInBatch(), eventFactory, ringBuffer ); 89 60 } 90 61 … … 103 74 while ( nextSequence <= availableSequence ) { 104 75 final E event = ringBuffer.get( nextSequence ); 105 lastEmulator.spendCPUTime( event );106 107 76 nextSequence++; 108 77 } … … 111 80 } 112 81 82 @Override 83 public int workersRequired() { 84 return 1; 85 } 86 113 87 114 88 @Override 115 89 public void terminate() { 116 90 super.terminate(); 117 118 for ( final EventProcessor processor : processors ) {119 processor.halt();120 }121 91 } 122 92 … … 147 117 } 148 118 149 private class Enqueuer extends EventEnqueuer {119 private class Enqueuer extends EventEnqueuer<E> { 150 120 private final RingBuffer<E> ringBuffer; 151 121 152 private Enqueuer( final RingBuffer<E> ringBuffer ) { 122 private Enqueuer( final int eventsInBatch, 123 final EventFactory<E> factory, 124 final RingBuffer<E> ringBuffer ) { 125 super( eventsInBatch, factory ); 153 126 this.ringBuffer = ringBuffer; 154 127 } -
Tests/JAVA/test/src/main/java/test/threads/queue/unstressed/DummyWasterFactory.java
r472 r482 1 package test.threads.queue. stressed.cpu;1 package test.threads.queue.unstressed; 2 2 3 3 import java.util.Arrays; 4 4 5 import com.lmax.disruptor.EventFactory; 5 6 import net.jcip.annotations.NotThreadSafe; 7 import test.helpers.Config; 6 8 import test.threads.queue.stressed.IUsefulWorkEmulator; 7 9 import test.threads.queue.stressed.IUsefulWorkFactory; 8 9 import static com.google.common.base.Preconditions.checkArgument; 10 import test.threads.queue.stressed.cpu.LongValueMessage; 10 11 11 12 /** … … 16 17 */ 17 18 @NotThreadSafe 18 public class CPUWasterFactory implements IUsefulWorkFactory<LongValueMessage> {19 public class DummyWasterFactory implements IUsefulWorkFactory<LongValueMessage> { 19 20 20 private int operationsPerNode;21 21 22 @Override 23 public void initialize( final int workSizePerEmulator ) { 24 this.operationsPerNode = workSizePerEmulator; 22 private final EventFactory<LongValueMessage> factory; 23 private final boolean cacheMessages; 24 25 public DummyWasterFactory( final Config config ) { 26 cacheMessages = config.getAsBoolean( "payload.cache-messages", true ); 27 if ( cacheMessages ) { 28 final int size = config.getAsInt( "task.buffer-size" ); 29 factory = EventPool.wrap( LongValueMessage.FACTORY, size ); 30 } else { 31 factory = LongValueMessage.FACTORY; 32 } 25 33 } 26 34 … … 28 36 public IUsefulWorkEmulator<LongValueMessage>[] createEmulators( final int count ) { 29 37 final IUsefulWorkEmulator<LongValueMessage>[] emulators = new IUsefulWorkEmulator[count]; 30 final CPUTimeWaster cpuTimeWaster = new CPUTimeWaster( operationsPerNode);38 final NoTimeWaster cpuTimeWaster = new NoTimeWaster(); 31 39 Arrays.fill( emulators, cpuTimeWaster ); 32 40 return emulators; 33 41 } 34 42 35 private long index = 0;36 43 37 44 @Override 38 45 public LongValueMessage newInstance() { 39 final LongValueMessage message = LongValueMessage.FACTORY.newInstance(); 40 message.value = index++; 46 final LongValueMessage message = factory.newInstance(); 41 47 return message; 42 48 } … … 44 50 @Override 45 51 public String toString() { 46 return " cpu";52 return "none[" + ( cacheMessages ? "cache" : "" ) + "]"; 47 53 } 48 54 49 55 /** 50 * Just simple mul/add -- only consume CPU cycles51 *52 56 * @author cheremin 53 57 * @since 27.02.12, 13:42 54 58 */ 55 private static class CPUTimeWaster implements IUsefulWorkEmulator<LongValueMessage> { 56 private static final long MUL_CONSTANT = 42 * 37; 57 private final int time; 59 private static class NoTimeWaster implements IUsefulWorkEmulator<LongValueMessage> { 58 60 59 public CPUTimeWaster( final int time ) { 60 checkArgument( time > 0, "time(%s) must be > 0", time ); 61 this.time = time; 61 public NoTimeWaster() { 62 62 } 63 63 64 64 @Override 65 65 public long spendCPUTime( final LongValueMessage message ) { 66 long value = message.value; 67 for ( int i = 0; i < time; i++ ) { 68 value = next( value ); 69 } 70 message.value = value; 71 return value; 72 } 73 74 private long next( final long current ) { 75 return current * MUL_CONSTANT + 42; 66 return 0; 76 67 } 77 68 } -
Tests/JAVA/test/src/main/java/test/threads/queue/unstressed/LongQueueBenchmarkingTask.java
r417 r482 3 3 import java.util.concurrent.*; 4 4 5 import test.threads.queue. impl.CABSESDMaskedLongQueue;5 import test.threads.queue.unstressed.impl.CABSESDMaskedLongQueue; 6 6 7 7 /** -
Tests/JAVA/test/src/main/java/test/threads/queue/unstressed/QueueBenchmarkingTask.java
r419 r482 8 8 9 9 /** 10 * fixme: Class QueueBenchmarkingTask is for porn11 *12 10 * @author cheremin 13 11 * @since 27.09.11, 16:06 12 * @deprecated use {@link QueueTask} instead 14 13 */ 14 @Deprecated 15 15 public class QueueBenchmarkingTask extends AbstractBenchmarkingTask { 16 16 private static final Log log = LogFactory.getLog( QueueBenchmarkingTask.class ); … … 51 51 52 52 public static class Enqueuer implements Callable<Void> { 53 enum State {53 enum State { 54 54 NOT_READY, 55 55 READY, … … 57 57 FINISHED 58 58 } 59 59 60 private final int iterations; 60 61 private final IQueue<LongValueEntry> queue; -
Tests/JAVA/test/src/main/java/test/threads/queue/unstressed/QueuesVsDisruptorUnstressedBenchmark.java
r428 r482 7 7 import test.threads.ThreadAffinity; 8 8 import test.threads.ThreadAffinity.Core; 9 import test.threads.queue. impl.*;9 import test.threads.queue.unstressed.impl.*; 10 10 11 11 /** … … 189 189 break; 190 190 191 191 case 9: 192 task = new QueueBenchmarkingTask( 193 ABQBusyWaitQueue.<LongValueEntry>factory(), 194 size, 195 eventFactory, 196 ITERATIONS, 197 TURNS, 198 warmUpDurationMs, 199 threadFactory 200 ); 201 break; 192 202 default: 193 203 throw new IllegalStateException( "Unknown index=" + index ); -
Tests/JAVA/test/src/main/java/test/threads/queue/unstressed/SequencerBenchmarkingTask.java
r417 r482 3 3 import java.util.concurrent.*; 4 4 5 import test.threads.queue. impl.SESDSequencer;5 import test.threads.queue.unstressed.impl.SESDSequencer; 6 6 7 7 /** -
Tests/JAVA/test/src/main/java/test/threads/queue/unstressed/impl/ABQWrapperQueue.java
r417 r482 1 package test.threads.queue. impl;1 package test.threads.queue.unstressed.impl; 2 2 3 3 import java.util.concurrent.ArrayBlockingQueue; 4 4 5 import org.apache.commons.logging.Log;6 import org.apache.commons.logging.LogFactory;7 5 import test.threads.queue.unstressed.IBoundedQueueFactory; 8 6 import test.threads.queue.unstressed.IQueue; 9 10 import static com.google.common.base.Preconditions.*;11 7 12 8 /** -
Tests/JAVA/test/src/main/java/test/threads/queue/unstressed/impl/AbstractMultiEnqMultiDeqQueueTest.java
r417 r482 1 package test.threads.queue. impl;1 package test.threads.queue.unstressed.impl; 2 2 3 3 import java.util.concurrent.Callable; -
Tests/JAVA/test/src/main/java/test/threads/queue/unstressed/impl/AbstractQueueTest.java
r417 r482 1 package test.threads.queue. impl;1 package test.threads.queue.unstressed.impl; 2 2 3 3 import java.util.ArrayList; 4 4 import java.util.List; 5 5 6 import gnu.trove.THashSet;7 6 import org.junit.*; 8 7 import test.threads.queue.unstressed.IQueue; 9 10 import static org.junit.Assert.*;11 8 12 9 /** -
Tests/JAVA/test/src/main/java/test/threads/queue/unstressed/impl/AbstractSESDSequencer.java
r416 r482 1 package test.threads.queue. impl;1 package test.threads.queue.unstressed.impl; 2 2 3 3 import java.lang.reflect.Field; -
Tests/JAVA/test/src/main/java/test/threads/queue/unstressed/impl/AbstractSingleEnqSingleDeqQueueTest.java
r417 r482 1 package test.threads.queue. impl;1 package test.threads.queue.unstressed.impl; 2 2 3 3 import java.util.ArrayList; -
Tests/JAVA/test/src/main/java/test/threads/queue/unstressed/impl/CABCQueueTest.java
r417 r482 1 package test.threads.queue. impl;1 package test.threads.queue.unstressed.impl; 2 2 3 3 -
Tests/JAVA/test/src/main/java/test/threads/queue/unstressed/impl/CABConcurrentQueue.java
r417 r482 1 package test.threads.queue. impl;1 package test.threads.queue.unstressed.impl; 2 2 3 3 import java.util.concurrent.atomic.AtomicLongFieldUpdater; … … 19 19 * @since 21.09.11, 13:56 20 20 */ 21 @Deprecated 21 22 public class CABConcurrentQueue<T> implements IQueue<T> { 22 23 -
Tests/JAVA/test/src/main/java/test/threads/queue/unstressed/impl/CABSESDLongQueue.java
r313 r482 1 package test.threads.queue. impl;1 package test.threads.queue.unstressed.impl; 2 2 3 3 -
Tests/JAVA/test/src/main/java/test/threads/queue/unstressed/impl/CABSESDMaskedLongQueue.java
r306 r482 1 package test.threads.queue. impl;1 package test.threads.queue.unstressed.impl; 2 2 3 3 -
Tests/JAVA/test/src/main/java/test/threads/queue/unstressed/impl/CABSESDMaskedQueue.java
r417 r482 1 package test.threads.queue. impl;1 package test.threads.queue.unstressed.impl; 2 2 3 3 -
Tests/JAVA/test/src/main/java/test/threads/queue/unstressed/impl/CABSESDMaskedQueueOptimized.java
r417 r482 1 package test.threads.queue. impl;1 package test.threads.queue.unstressed.impl; 2 2 3 3 import java.lang.reflect.Field; … … 5 5 6 6 import com.google.common.base.Throwables; 7 import org.apache.commons.logging.Log;8 import org.apache.commons.logging.LogFactory;9 7 import sun.misc.Unsafe; 10 8 import test.sorting.UnsafeHelper; 11 9 import test.threads.queue.unstressed.IBoundedQueueFactory; 12 10 import test.threads.queue.unstressed.IQueue; 13 14 import static com.google.common.base.Preconditions.*;15 11 16 12 /** -
Tests/JAVA/test/src/main/java/test/threads/queue/unstressed/impl/CABSESDQueue.java
r417 r482 1 package test.threads.queue. impl;1 package test.threads.queue.unstressed.impl; 2 2 3 3 -
Tests/JAVA/test/src/main/java/test/threads/queue/unstressed/impl/CABSESDQueueTest.java
r417 r482 1 package test.threads.queue. impl;1 package test.threads.queue.unstressed.impl; 2 2 3 3 import test.threads.queue.unstressed.IQueue; -
Tests/JAVA/test/src/main/java/test/threads/queue/unstressed/impl/SESDQueue.java
r417 r482 1 package test.threads.queue. impl;1 package test.threads.queue.unstressed.impl; 2 2 3 3 import test.threads.queue.unstressed.IBoundedQueueFactory; -
Tests/JAVA/test/src/main/java/test/threads/queue/unstressed/impl/SESDSequencer.java
r306 r482 1 package test.threads.queue. impl;1 package test.threads.queue.unstressed.impl; 2 2 3 3 -
Tests/JAVA/test/src/main/java/test/threads/queue/unstressed/impl/SESDSequencer2.java
r309 r482 1 package test.threads.queue. impl;1 package test.threads.queue.unstressed.impl; 2 2 3 3 import java.util.concurrent.atomic.AtomicLongFieldUpdater; -
Tests/JAVA/test/task_benchmark.sh
r481 r482 15 15 rm result.data 16 16 17 #for OPS in 1000000 100000 10000 1024 128 16 418 for OPS in 4096 2048 1024 512 256 12817 for OPS in 1000000 100000 10000 1024 128 16 4 18 #for OPS in 4096 2048 1024 512 256 128 19 19 do 20 20 mvn exec:java -Dexec.mainClass="test.threads.queue.stressed.TaskBenchmark" \ 21 -Dexec.args=" test.threads.queue.stressed.$TYPE $STRESS_TYPE$OPS" -e21 -Dexec.args="--task=test.threads.queue.stressed.$TYPE --payload=$STRESS_TYPE --opsPerPacket=$OPS" -e 22 22 done -
Tests/JAVA/test/test.iws
r481 r482 41 41 <component name="ChangeListManager"> 42 42 <list default="true" readonly="true" id="6898b49f-ea82-4df2-ad6c-da63a3fe4f9a" name="Default" comment=""> 43 <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/src/main/java/test/threads/queue/common" /> 44 <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/src/main/java/test/threads/queue/common/BaseEnqueuer.java" /> 45 <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/src/main/java/test/threads/queue/common/FSM.java" /> 46 <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/src/main/java/test/threads/queue/unstressed/DisruptorTask.java" /> 47 <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/src/main/java/test/threads/queue/unstressed/DummyWasterFactory.java" /> 48 <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/src/main/java/test/threads/queue/unstressed/QueueTask.java" /> 49 <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/src/main/java/test/threads/queue/unstressed/impl/ABQBusyWaitQueue.java" /> 50 <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/unstressed_task_benchmark.sh" /> 51 <change type="MOVED" beforePath="$PROJECT_DIR$/src/main/java/test/threads/queue/impl/ABQWrapperQueue.java" afterPath="$PROJECT_DIR$/src/main/java/test/threads/queue/unstressed/impl/ABQWrapperQueue.java" /> 52 <change type="MOVED" beforePath="$PROJECT_DIR$/src/main/java/test/threads/queue/impl/AbstractMultiEnqMultiDeqQueueTest.java" afterPath="$PROJECT_DIR$/src/main/java/test/threads/queue/unstressed/impl/AbstractMultiEnqMultiDeqQueueTest.java" /> 53 <change type="MOVED" beforePath="$PROJECT_DIR$/src/main/java/test/threads/queue/impl/AbstractQueueTest.java" afterPath="$PROJECT_DIR$/src/main/java/test/threads/queue/unstressed/impl/AbstractQueueTest.java" /> 54 <change type="MOVED" beforePath="$PROJECT_DIR$/src/main/java/test/threads/queue/impl/AbstractSESDSequencer.java" afterPath="$PROJECT_DIR$/src/main/java/test/threads/queue/unstressed/impl/AbstractSESDSequencer.java" /> 55 <change type="MOVED" beforePath="$PROJECT_DIR$/src/main/java/test/threads/queue/impl/AbstractSingleEnqSingleDeqQueueTest.java" afterPath="$PROJECT_DIR$/src/main/java/test/threads/queue/unstressed/impl/AbstractSingleEnqSingleDeqQueueTest.java" /> 56 <change type="MOVED" beforePath="$PROJECT_DIR$/src/main/java/test/threads/queue/impl/CABCQueueTest.java" afterPath="$PROJECT_DIR$/src/main/java/test/threads/queue/unstressed/impl/CABCQueueTest.java" /> 57 <change type="MOVED" beforePath="$PROJECT_DIR$/src/main/java/test/threads/queue/impl/CABConcurrentQueue.java" afterPath="$PROJECT_DIR$/src/main/java/test/threads/queue/unstressed/impl/CABConcurrentQueue.java" /> 58 <change type="MOVED" beforePath="$PROJECT_DIR$/src/main/java/test/threads/queue/impl/CABSESDLongQueue.java" afterPath="$PROJECT_DIR$/src/main/java/test/threads/queue/unstressed/impl/CABSESDLongQueue.java" /> 59 <change type="MOVED" beforePath="$PROJECT_DIR$/src/main/java/test/threads/queue/impl/CABSESDMaskedLongQueue.java" afterPath="$PROJECT_DIR$/src/main/java/test/threads/queue/unstressed/impl/CABSESDMaskedLongQueue.java" /> 60 <change type="MOVED" beforePath="$PROJECT_DIR$/src/main/java/test/threads/queue/impl/CABSESDMaskedQueue.java" afterPath="$PROJECT_DIR$/src/main/java/test/threads/queue/unstressed/impl/CABSESDMaskedQueue.java" /> 61 <change type="MOVED" beforePath="$PROJECT_DIR$/src/main/java/test/threads/queue/impl/CABSESDMaskedQueueOptimized.java" afterPath="$PROJECT_DIR$/src/main/java/test/threads/queue/unstressed/impl/CABSESDMaskedQueueOptimized.java" /> 62 <change type="MOVED" beforePath="$PROJECT_DIR$/src/main/java/test/threads/queue/impl/CABSESDQueue.java" afterPath="$PROJECT_DIR$/src/main/java/test/threads/queue/unstressed/impl/CABSESDQueue.java" /> 63 <change type="MOVED" beforePath="$PROJECT_DIR$/src/main/java/test/threads/queue/impl/CABSESDQueueTest.java" afterPath="$PROJECT_DIR$/src/main/java/test/threads/queue/unstressed/impl/CABSESDQueueTest.java" /> 64 <change type="MOVED" beforePath="$PROJECT_DIR$/src/main/java/test/threads/queue/impl/SESDQueue.java" afterPath="$PROJECT_DIR$/src/main/java/test/threads/queue/unstressed/impl/SESDQueue.java" /> 65 <change type="MOVED" beforePath="$PROJECT_DIR$/src/main/java/test/threads/queue/impl/SESDSequencer.java" afterPath="$PROJECT_DIR$/src/main/java/test/threads/queue/unstressed/impl/SESDSequencer.java" /> 66 <change type="MOVED" beforePath="$PROJECT_DIR$/src/main/java/test/threads/queue/impl/SESDSequencer2.java" afterPath="$PROJECT_DIR$/src/main/java/test/threads/queue/unstressed/impl/SESDSequencer2.java" /> 67 <change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/main/java/test/helpers/Config.java" afterPath="$PROJECT_DIR$/src/main/java/test/helpers/Config.java" /> 68 <change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/main/java/test/threads/queue/stressed/ABQxNTask.java" afterPath="$PROJECT_DIR$/src/main/java/test/threads/queue/stressed/ABQxNTask.java" /> 69 <change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/main/java/test/threads/queue/stressed/AbstractTask.java" afterPath="$PROJECT_DIR$/src/main/java/test/threads/queue/stressed/AbstractTask.java" /> 70 <change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/main/java/test/threads/queue/stressed/DxNTask.java" afterPath="$PROJECT_DIR$/src/main/java/test/threads/queue/stressed/DxNTask.java" /> 71 <change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/main/java/test/threads/queue/stressed/ITask.java" afterPath="$PROJECT_DIR$/src/main/java/test/threads/queue/stressed/ITask.java" /> 72 <change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/main/java/test/threads/queue/stressed/IUsefulWorkFactory.java" afterPath="$PROJECT_DIR$/src/main/java/test/threads/queue/stressed/IUsefulWorkFactory.java" /> 73 <change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/main/java/test/threads/queue/stressed/SingleThreadedTask.java" afterPath="$PROJECT_DIR$/src/main/java/test/threads/queue/stressed/SingleThreadedTask.java" /> 74 <change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/main/java/test/threads/queue/stressed/TaskBenchmark.java" afterPath="$PROJECT_DIR$/src/main/java/test/threads/queue/stressed/TaskBenchmark.java" /> 75 <change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/main/java/test/threads/queue/stressed/cpu/CPUWasterFactory.java" afterPath="$PROJECT_DIR$/src/main/java/test/threads/queue/stressed/cpu/CPUWasterFactory.java" /> 76 <change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/main/java/test/threads/queue/stressed/memory/CPUMemoryWasterFactory.java" afterPath="$PROJECT_DIR$/src/main/java/test/threads/queue/stressed/memory/CPUMemoryWasterFactory.java" /> 77 <change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/main/java/test/threads/queue/stressed/memory/MemoryWasterFactory.java" afterPath="$PROJECT_DIR$/src/main/java/test/threads/queue/stressed/memory/MemoryWasterFactory.java" /> 78 <change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/main/java/test/threads/queue/unstressed/LongQueueBenchmarkingTask.java" afterPath="$PROJECT_DIR$/src/main/java/test/threads/queue/unstressed/LongQueueBenchmarkingTask.java" /> 79 <change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/main/java/test/threads/queue/unstressed/QueueBenchmarkingTask.java" afterPath="$PROJECT_DIR$/src/main/java/test/threads/queue/unstressed/QueueBenchmarkingTask.java" /> 80 <change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/main/java/test/threads/queue/unstressed/QueuesVsDisruptorUnstressedBenchmark.java" afterPath="$PROJECT_DIR$/src/main/java/test/threads/queue/unstressed/QueuesVsDisruptorUnstressedBenchmark.java" /> 81 <change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/main/java/test/threads/queue/unstressed/SequencerBenchmarkingTask.java" afterPath="$PROJECT_DIR$/src/main/java/test/threads/queue/unstressed/SequencerBenchmarkingTask.java" /> 43 82 <change type="MODIFICATION" beforePath="$PROJECT_DIR$/task_benchmark.sh" afterPath="$PROJECT_DIR$/task_benchmark.sh" /> 44 83 <change type="MODIFICATION" beforePath="$PROJECT_DIR$/test.iws" afterPath="$PROJECT_DIR$/test.iws" /> 84 <change type="MOVED" beforePath="$PROJECT_DIR$/src/main/java/test/threads/queue/impl" afterPath="$PROJECT_DIR$/src/main/java/test/threads/queue/unstressed/impl" /> 45 85 </list> 46 86 <ignored path=".idea/workspace.xml" /> … … 80 120 <option name="LOG_MESSAGE" value="JAVA" /> 81 121 </breakpoint> 82 <breakpoint url="file://$PROJECT_DIR$/src/main/java/test/threads/queue/ impl/AbstractSingleEnqSingleDeqQueueTest.java" line="53" class="test.threads.queue.impl.AbstractSingleEnqSingleDeqQueueTest" package="test.threads.queue.impl">122 <breakpoint url="file://$PROJECT_DIR$/src/main/java/test/threads/queue/unstressed/impl/AbstractSingleEnqSingleDeqQueueTest.java" line="53" class="test.threads.queue.unstressed.impl.AbstractSingleEnqSingleDeqQueueTest" package="test.threads.queue.unstressed.impl"> 83 123 <option name="ENABLED" value="true" /> 84 124 <option name="LOG_ENABLED" value="false" /> … … 203 243 <component name="FileEditorManager"> 204 244 <leaf> 205 <file leaf-file-name=" DxNTask.java" pinned="false" current="false" current-in-tab="false">206 <entry file="file://$PROJECT_DIR$/ src/main/java/test/threads/queue/stressed/DxNTask.java">245 <file leaf-file-name="unstressed_task_benchmark.sh" pinned="false" current="false" current-in-tab="false"> 246 <entry file="file://$PROJECT_DIR$/unstressed_task_benchmark.sh"> 207 247 <provider selected="true" editor-type-id="text-editor"> 208 <state line=" 74" column="25" selection-start="2568" selection-end="2568" vertical-scroll-proportion="0.0">248 <state line="5" column="0" selection-start="196" selection-end="196" vertical-scroll-proportion="0.0"> 209 249 <folding /> 210 250 </state> … … 212 252 </entry> 213 253 </file> 214 <file leaf-file-name=" task_benchmark.sh" pinned="false" current="true" current-in-tab="true">215 <entry file="file://$PROJECT_DIR$/ task_benchmark.sh">254 <file leaf-file-name="DisruptorTask.java" pinned="false" current="false" current-in-tab="false"> 255 <entry file="file://$PROJECT_DIR$/src/main/java/test/threads/queue/unstressed/DisruptorTask.java"> 216 256 <provider selected="true" editor-type-id="text-editor"> 217 <state line="17" column="18" selection-start="355" selection-end="355" vertical-scroll-proportion="0.5743243"> 218 <folding /> 219 </state> 220 </provider> 221 </entry> 222 </file> 223 <file leaf-file-name="CPUMemoryWasterFactory.java" pinned="false" current="false" current-in-tab="false"> 224 <entry file="file://$PROJECT_DIR$/src/main/java/test/threads/queue/stressed/memory/CPUMemoryWasterFactory.java"> 225 <provider selected="true" editor-type-id="text-editor"> 226 <state line="44" column="23" selection-start="1290" selection-end="1290" vertical-scroll-proportion="0.0"> 227 <folding /> 228 </state> 229 </provider> 230 </entry> 231 </file> 232 <file leaf-file-name="ABQxNTask.java" pinned="false" current="false" current-in-tab="false"> 233 <entry file="file://$PROJECT_DIR$/src/main/java/test/threads/queue/stressed/ABQxNTask.java"> 234 <provider selected="true" editor-type-id="text-editor"> 235 <state line="62" column="0" selection-start="1755" selection-end="1755" vertical-scroll-proportion="0.0"> 236 <folding /> 237 </state> 238 </provider> 239 </entry> 240 </file> 241 <file leaf-file-name="TaskBenchmark.java" pinned="false" current="false" current-in-tab="false"> 242 <entry file="file://$PROJECT_DIR$/src/main/java/test/threads/queue/stressed/TaskBenchmark.java"> 243 <provider selected="true" editor-type-id="text-editor"> 244 <state line="126" column="41" selection-start="5085" selection-end="5085" vertical-scroll-proportion="0.0"> 245 <folding /> 257 <state line="69" column="0" selection-start="2242" selection-end="2242" vertical-scroll-proportion="0.0"> 258 <folding> 259 <element signature="imports" expanded="true" /> 260 <element signature="method#workersRequired#0;class#DisruptorTask#0" expanded="false" /> 261 <element signature="method#terminate#0;class#DisruptorTask#0" expanded="false" /> 262 <element signature="method#toString#0;class#DisruptorTask#0" expanded="false" /> 263 <element signature="class#PassThroughHandler#0;class#DisruptorTask#0" expanded="false" /> 264 <element signature="method#PassThroughHandler#0;class#PassThroughHandler#0;class#DisruptorTask#0" expanded="false" /> 265 <element signature="method#onEvent#0;class#PassThroughHandler#0;class#DisruptorTask#0" expanded="false" /> 266 <element signature="class#Enqueuer#0;class#DisruptorTask#0" expanded="false" /> 267 <element signature="method#Enqueuer#0;class#Enqueuer#0;class#DisruptorTask#0" expanded="false" /> 268 <element signature="method#enqueueEventsBatch#0;class#Enqueuer#0;class#DisruptorTask#0" expanded="false" /> 269 </folding> 246 270 </state> 247 271 </provider> … … 251 275 <entry file="file://$PROJECT_DIR$/src/main/java/test/threads/queue/stressed/AbstractTask.java"> 252 276 <provider selected="true" editor-type-id="text-editor"> 253 <state line="237" column="0" selection-start="8557" selection-end="8557" vertical-scroll-proportion="0.0"> 254 <folding /> 277 <state line="143" column="27" selection-start="5258" selection-end="5258" vertical-scroll-proportion="0.0"> 278 <folding> 279 <element signature="method#AbstractTask#0;class#AbstractTask#0" expanded="false" /> 280 <element signature="method#AbstractTask#1;class#AbstractTask#0" expanded="false" /> 281 <element signature="method#AbstractTask#2;class#AbstractTask#0" expanded="false" /> 282 <element signature="method#AbstractTask#3;class#AbstractTask#0" expanded="false" /> 283 <element signature="method#bufferSize#0;class#AbstractTask#0" expanded="false" /> 284 <element signature="method#eventsInBatch#0;class#AbstractTask#0" expanded="false" /> 285 <element signature="method#eventFactory#0;class#AbstractTask#0" expanded="false" /> 286 <element signature="method#execute#0;class#AbstractTask#0" expanded="false" /> 287 <element signature="method#terminate#0;class#AbstractTask#0" expanded="false" /> 288 <element signature="method#dequeueWhileTimeIsNotEllapsed#0;class#AbstractTask#0" expanded="false" /> 289 <element signature="method#toString#0;class#AbstractTask#0" expanded="false" /> 290 <element signature="class#EventEnqueuer#0;class#AbstractTask#0" expanded="false" /> 291 <element signature="method#EventEnqueuer#0;class#EventEnqueuer#0;class#AbstractTask#0" expanded="false" /> 292 <element signature="method#enqueueEventsBatch#0;class#EventEnqueuer#0;class#AbstractTask#0" expanded="false" /> 293 </folding> 255 294 </state> 256 295 </provider> 257 296 </entry> 258 297 </file> 259 <file leaf-file-name=" SingleThreadedTask.java" pinned="false" current="false" current-in-tab="false">260 <entry file="file://$PROJECT_DIR$/src/main/java/test/threads/queue/stressed/ SingleThreadedTask.java">298 <file leaf-file-name="TaskBenchmark.java" pinned="false" current="true" current-in-tab="true"> 299 <entry file="file://$PROJECT_DIR$/src/main/java/test/threads/queue/stressed/TaskBenchmark.java"> 261 300 <provider selected="true" editor-type-id="text-editor"> 262 <state line="77" column="41" selection-start="2741" selection-end="2741" vertical-scroll-proportion="0.0"> 301 <state line="140" column="34" selection-start="5847" selection-end="5847" vertical-scroll-proportion="-0.4445946"> 302 <folding> 303 <element signature="imports" expanded="true" /> 304 <element signature="docComment;class#TaskBenchmark#0" expanded="true" /> 305 <element signature="docComment;method#main#0;class#TaskBenchmark#0" expanded="true" /> 306 </folding> 307 </state> 308 </provider> 309 </entry> 310 </file> 311 <file leaf-file-name="DummyWasterFactory.java" pinned="false" current="false" current-in-tab="false"> 312 <entry file="file://$PROJECT_DIR$/src/main/java/test/threads/queue/unstressed/DummyWasterFactory.java"> 313 <provider selected="true" editor-type-id="text-editor"> 314 <state line="51" column="57" selection-start="1642" selection-end="1642" vertical-scroll-proportion="0.0"> 315 <folding> 316 <element signature="docComment;class#NoTimeWaster#0;class#DummyWasterFactory#0" expanded="true" /> 317 </folding> 318 </state> 319 </provider> 320 </entry> 321 </file> 322 <file leaf-file-name="config.properties" pinned="false" current="false" current-in-tab="false"> 323 <entry file="file://$PROJECT_DIR$/config.properties"> 324 <provider selected="true" editor-type-id="text-editor"> 325 <state line="9" column="34" selection-start="250" selection-end="250" vertical-scroll-proportion="0.0"> 263 326 <folding /> 264 327 </state> … … 280 343 <option name="changedFiles"> 281 344 <list> 282 <option value="$PROJECT_DIR$/src/main/java/test/threads/queue/stressed/Dp4Task.java" /> 345 <option value="$PROJECT_DIR$/unstressed_task_benchmark.sh" /> 346 <option value="$PROJECT_DIR$/src/main/java/test/threads/queue/stressed/ABQxNTask.java" /> 347 <option value="$PROJECT_DIR$/src/main/java/test/threads/queue/stressed/DxNTask.java" /> 348 <option value="$PROJECT_DIR$/src/main/java/test/threads/queue/stressed/SingleThreadedTask.java" /> 349 <option value="$PROJECT_DIR$/src/main/java/test/threads/queue/unstressed/DisruptorTask.java" /> 283 350 <option value="$PROJECT_DIR$/src/main/java/test/helpers/Config.java" /> 284 <option value="$PROJECT_DIR$/src/main/java/test/threads/queue/ stressed/ABQp4Task.java" />285 <option value="$PROJECT_DIR$/src/main/java/test/threads/queue/stressed/ memory/MemoryAccessWasterFactory.java" />286 <option value="$PROJECT_DIR$/src/main/java/test/threads/queue/stressed/ cpu/SimpleCPUWasterFactory.java" />351 <option value="$PROJECT_DIR$/src/main/java/test/threads/queue/unstressed/QueueTask.java" /> 352 <option value="$PROJECT_DIR$/src/main/java/test/threads/queue/stressed/IUsefulWorkFactory.java" /> 353 <option value="$PROJECT_DIR$/src/main/java/test/threads/queue/stressed/memory/CPUMemoryWasterFactory.java" /> 287 354 <option value="$PROJECT_DIR$/src/main/java/test/threads/queue/stressed/memory/MemoryWasterFactory.java" /> 355 <option value="$PROJECT_DIR$/src/main/java/test/threads/queue/stressed/cpu/CPUWasterFactory.java" /> 356 <option value="$PROJECT_DIR$/src/main/java/test/threads/queue/stressed/AbstractTask.java" /> 357 <option value="$PROJECT_DIR$/config.properties" /> 358 <option value="$PROJECT_DIR$/src/main/java/test/threads/queue/unstressed/DummyWasterFactory.java" /> 288 359 <option value="$PROJECT_DIR$/src/main/java/test/threads/queue/stressed/ITask.java" /> 289 <option value="$PROJECT_DIR$/src/main/java/test/threads/queue/stressed/ABQxNTask.java" />290 360 <option value="$PROJECT_DIR$/src/main/java/test/threads/queue/stressed/TaskBenchmark.java" /> 291 <option value="$PROJECT_DIR$/src/main/java/test/threads/queue/stressed/DxNTask.java" />292 <option value="$PROJECT_DIR$/config.properties.template" />293 <option value="$PROJECT_DIR$/config.properties" />294 <option value="$PROJECT_DIR$/src/main/java/test/threads/queue/stressed/AbstractTask.java" />295 <option value="$PROJECT_DIR$/src/main/java/test/threads/queue/stressed/memory/CPUMemoryWasterFactory.java" />296 <option value="$PROJECT_DIR$/src/main/java/test/threads/queue/stressed/SingleThreadedTask.java" />297 <option value="$PROJECT_DIR$/task_benchmark.sh" />298 361 </list> 299 362 </option> … … 935 998 <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" /> 936 999 </PATH_ELEMENT> 1000 <PATH_ELEMENT> 1001 <option name="myItemId" value="unstressed" /> 1002 <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" /> 1003 </PATH_ELEMENT> 937 1004 </PATH> 938 1005 <PATH> … … 970 1037 </PATH_ELEMENT> 971 1038 <PATH_ELEMENT> 972 <option name="myItemId" value="stressed" /> 1039 <option name="myItemId" value="unstressed" /> 1040 <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" /> 1041 </PATH_ELEMENT> 1042 <PATH_ELEMENT> 1043 <option name="myItemId" value="impl" /> 973 1044 <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" /> 974 1045 </PATH_ELEMENT> … … 1007 1078 <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" /> 1008 1079 </PATH_ELEMENT> 1009 <PATH_ELEMENT>1010 <option name="myItemId" value="stressed" />1011 <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />1012 </PATH_ELEMENT>1013 <PATH_ELEMENT>1014 <option name="myItemId" value="memory" />1015 <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />1016 </PATH_ELEMENT>1017 1080 </PATH> 1018 1081 <PATH> … … 1050 1113 </PATH_ELEMENT> 1051 1114 <PATH_ELEMENT> 1052 <option name="myItemId" value="stressed" /> 1053 <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" /> 1054 </PATH_ELEMENT> 1055 <PATH_ELEMENT> 1056 <option name="myItemId" value="cpu" /> 1115 <option name="myItemId" value="common" /> 1116 <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" /> 1117 </PATH_ELEMENT> 1118 </PATH> 1119 <PATH> 1120 <PATH_ELEMENT> 1121 <option name="myItemId" value="test" /> 1122 <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" /> 1123 </PATH_ELEMENT> 1124 <PATH_ELEMENT> 1125 <option name="myItemId" value="test" /> 1126 <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" /> 1127 </PATH_ELEMENT> 1128 <PATH_ELEMENT> 1129 <option name="myItemId" value="src" /> 1130 <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" /> 1131 </PATH_ELEMENT> 1132 <PATH_ELEMENT> 1133 <option name="myItemId" value="main" /> 1134 <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" /> 1135 </PATH_ELEMENT> 1136 <PATH_ELEMENT> 1137 <option name="myItemId" value="java" /> 1138 <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" /> 1139 </PATH_ELEMENT> 1140 <PATH_ELEMENT> 1141 <option name="myItemId" value="test" /> 1142 <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" /> 1143 </PATH_ELEMENT> 1144 <PATH_ELEMENT> 1145 <option name="myItemId" value="helpers" /> 1057 1146 <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" /> 1058 1147 </PATH_ELEMENT> … … 1114 1203 <component name="RecentsManager"> 1115 1204 <key name="CopyClassDialog.RECENTS_KEY"> 1205 <recent name="test.threads.queue.unstressed" /> 1116 1206 <recent name="test.threads.queue.stressed.memory" /> 1117 1207 <recent name="test.threads.queue.stressed" /> 1118 1208 <recent name="test.threads" /> 1119 1209 <recent name="test.threads.queue.impl" /> 1120 <recent name="test.threads.queue" />1121 1210 </key> 1122 1211 <key name="CopyFile.RECENT_KEYS"> … … 1129 1218 <recent name="test.strings" /> 1130 1219 </key> 1220 <key name="IntroduceConstantDialog.RECENTS_KEY"> 1221 <recent name="test.threads.cache.CacheBenchmark2" /> 1222 <recent name="test.sandbox.jetlang.LockFreeBatchSubscriberPerf" /> 1223 <recent name="test.hflabs.ParallelMain" /> 1224 </key> 1131 1225 <key name="MoveMembersDialog.RECENTS_KEY"> 1132 1226 <recent name="test.threads.queue.stressed.TaskBenchmark" /> … … 1135 1229 <recent name="test.threads.queue.QueueBenchmarkingTask" /> 1136 1230 </key> 1137 <key name="IntroduceConstantDialog.RECENTS_KEY">1138 <recent name="test.threads.cache.CacheBenchmark2" />1139 <recent name="test.sandbox.jetlang.LockFreeBatchSubscriberPerf" />1140 <recent name="test.hflabs.ParallelMain" />1141 </key>1142 1231 <key name="CreateClassDialog.RecentsKey"> 1232 <recent name="test.threads.queue.unstressed" /> 1143 1233 <recent name="test.threads.queue.stressed" /> 1144 1234 <recent name="test.threads.queue.cpubound" /> 1145 1235 <recent name="test.threads.queue" /> 1146 1236 <recent name="test.threads.queue.impl" /> 1147 <recent name="test.strings" />1148 1237 </key> 1149 1238 <key name="MoveClassesOrPackagesDialog.RECENTS_KEY"> 1239 <recent name="test.threads.queue.unstressed.impl" /> 1240 <recent name="test.threads.queue.unstressed" /> 1150 1241 <recent name="test.threads.queue.stressed.old" /> 1151 1242 <recent name="test.threads.queue.stressed.cpu" /> 1152 1243 <recent name="test.sorting" /> 1153 <recent name="test.threads.queue.impl" />1154 <recent name="test.helpers.ldap.fpd" />1155 1244 </key> 1156 1245 </component> 1157 <component name="RunManager" selected="Application. TaskBenchmark[SingleThread]">1246 <component name="RunManager" selected="Application.unstressed.TaskBenchmark[SESD]"> 1158 1247 <configuration default="false" name="CABSESDQueueTest" type="JUnit" factoryName="JUnit" temporary="true"> 1159 1248 <module name="test" /> 1160 1249 <option name="ALTERNATIVE_JRE_PATH_ENABLED" value="false" /> 1161 1250 <option name="ALTERNATIVE_JRE_PATH" value="" /> 1162 <option name="PACKAGE_NAME" value="test.threads.queue. impl" />1163 <option name="MAIN_CLASS_NAME" value="test.threads.queue. impl.CABSESDQueueTest" />1251 <option name="PACKAGE_NAME" value="test.threads.queue.unstressed.impl" /> 1252 <option name="MAIN_CLASS_NAME" value="test.threads.queue.unstressed.impl.CABSESDQueueTest" /> 1164 1253 <option name="METHOD_NAME" value="" /> 1165 1254 <option name="TEST_OBJECT" value="class" /> … … 1200 1289 <method /> 1201 1290 </configuration> 1202 <configuration default="false" name="test.threads.queue. impl in test" type="JUnit" factoryName="JUnit" temporary="true">1291 <configuration default="false" name="test.threads.queue.unstressed.impl in test" type="JUnit" factoryName="JUnit" temporary="true"> 1203 1292 <module name="test" /> 1204 1293 <option name="ALTERNATIVE_JRE_PATH_ENABLED" value="false" /> 1205 1294 <option name="ALTERNATIVE_JRE_PATH" value="" /> 1206 <option name="PACKAGE_NAME" value="test.threads.queue. impl" />1295 <option name="PACKAGE_NAME" value="test.threads.queue.unstressed.impl" /> 1207 1296 <option name="MAIN_CLASS_NAME" value="" /> 1208 1297 <option name="METHOD_NAME" value="" /> … … 1363 1452 </configuration> 1364 1453 <configuration default="false" name="QueueBenchmark[ABQ]" type="Application" factoryName="Application"> 1365 <option name="MAIN_CLASS_NAME" value="test.threads.queue. QueuesVsDisruptorUnstressedBenchmark" />1454 <option name="MAIN_CLASS_NAME" value="test.threads.queue.unstressed.QueuesVsDisruptorUnstressedBenchmark" /> 1366 1455 <option name="VM_PARAMETERS" value="-da -server -Xmx512m -Xms512" /> 1367 <option name="PROGRAM_PARAMETERS" value="0 true" />1456 <option name="PROGRAM_PARAMETERS" value="0" /> 1368 1457 <option name="WORKING_DIRECTORY" value="file://$PROJECT_DIR$" /> 1369 1458 <option name="ALTERNATIVE_JRE_PATH_ENABLED" value="false" /> … … 1387 1476 <method /> 1388 1477 </configuration> 1478 <configuration default="false" name="QueueBenchmark[ABQBusyWait]" type="Application" factoryName="Application"> 1479 <option name="MAIN_CLASS_NAME" value="test.threads.queue.unstressed.QueuesVsDisruptorUnstressedBenchmark" /> 1480 <option name="VM_PARAMETERS" value="-da -server -Xmx512m -Xms512" /> 1481 <option name="PROGRAM_PARAMETERS" value="9" /> 1482 <option name="WORKING_DIRECTORY" value="file://$PROJECT_DIR$" /> 1483 <option name="ALTERNATIVE_JRE_PATH_ENABLED" value="false" /> 1484 <option name="ALTERNATIVE_JRE_PATH" value="" /> 1485 <option name="ENABLE_SWING_INSPECTOR" value="false" /> 1486 <option name="ENV_VARIABLES" /> 1487 <option name="PASS_PARENT_ENVS" value="true" /> 1488 <module name="test" /> 1489 <envs /> 1490 <RunnerSettings RunnerId="Debug"> 1491 <option name="DEBUG_PORT" value="64428" /> 1492 <option name="TRANSPORT" value="0" /> 1493 <option name="LOCAL" value="true" /> 1494 </RunnerSettings> 1495 <RunnerSettings RunnerId="Profile "> 1496 <option name="myExternalizedOptions" value=" snapshots-dir= additional-options2=onexit\=snapshot " /> 1497 </RunnerSettings> 1498 <RunnerSettings RunnerId="Run" /> 1499 <ConfigurationWrapper RunnerId="Debug" /> 1500 <ConfigurationWrapper RunnerId="Run" /> 1501 <method /> 1502 </configuration> 1389 1503 <configuration default="false" name="QueueBenchmark[SESDMaskedOptimized]" type="Application" factoryName="Application"> 1390 <option name="MAIN_CLASS_NAME" value="test.threads.queue. QueuesVsDisruptorUnstressedBenchmark" />1391 <option name="VM_PARAMETERS" value="-da -server -Xmx512m -Xms512m -XX:+AggressiveOpts -XX:+UnlockDiagnosticVMOptions -XX:CompileCommand=print,*Optimized.enqueue -XX:-UseCondCardMark" />1392 <option name="PROGRAM_PARAMETERS" value="4 30" />1504 <option name="MAIN_CLASS_NAME" value="test.threads.queue.unstressed.QueuesVsDisruptorUnstressedBenchmark" /> 1505 <option name="VM_PARAMETERS" value="-da -server -Xmx512m -Xms512m -XX:+AggressiveOpts -XX:+UnlockDiagnosticVMOptions" /> 1506 <option name="PROGRAM_PARAMETERS" value="4" /> 1393 1507 <option name="WORKING_DIRECTORY" value="file://$PROJECT_DIR$" /> 1394 1508 <option name="ALTERNATIVE_JRE_PATH_ENABLED" value="true" /> … … 1457 1571 </configuration> 1458 1572 <configuration default="false" name="QueueBenchmark[DisruptorWithBatch]" type="Application" factoryName="Application"> 1459 <option name="MAIN_CLASS_NAME" value="test.threads.queue. QueuesVsDisruptorUnstressedBenchmark" />1573 <option name="MAIN_CLASS_NAME" value="test.threads.queue.unstressed.QueuesVsDisruptorUnstressedBenchmark" /> 1460 1574 <option name="VM_PARAMETERS" value="-da -server -Xmx512m -Xms512" /> 1461 <option name="PROGRAM_PARAMETERS" value="5 true" />1575 <option name="PROGRAM_PARAMETERS" value="5" /> 1462 1576 <option name="WORKING_DIRECTORY" value="file://$PROJECT_DIR$" /> 1463 1577 <option name="ALTERNATIVE_JRE_PATH_ENABLED" value="false" /> … … 1645 1759 <option name="MAIN_CLASS_NAME" value="test.threads.queue.stressed.TaskBenchmark" /> 1646 1760 <option name="VM_PARAMETERS" value="-ea -server -Xmx128m -XX:+PrintCommandLineFlags " /> 1647 <option name="PROGRAM_PARAMETERS" value=" test.threads.queue.stressed.SingleThreadedTask memory128" />1761 <option name="PROGRAM_PARAMETERS" value="-task=test.threads.queue.stressed.SingleThreadedTask --payload=memory --opsPerPacket=128" /> 1648 1762 <option name="WORKING_DIRECTORY" value="file://$PROJECT_DIR$" /> 1649 1763 <option name="ALTERNATIVE_JRE_PATH_ENABLED" value="true" /> … … 1664 1778 <option name="MAIN_CLASS_NAME" value="test.threads.queue.stressed.TaskBenchmark" /> 1665 1779 <option name="VM_PARAMETERS" value="-ea -server -Xmx128m -XX:+PrintCommandLineFlags " /> 1666 <option name="PROGRAM_PARAMETERS" value=" test.threads.queue.stressed.ABQxNTask cpu1024" />1780 <option name="PROGRAM_PARAMETERS" value="--task=test.threads.queue.stressed.ABQxNTask --payload=cpu --opsPerPacket=1024" /> 1667 1781 <option name="WORKING_DIRECTORY" value="file://$PROJECT_DIR$" /> 1668 1782 <option name="ALTERNATIVE_JRE_PATH_ENABLED" value="true" /> … … 1689 1803 <option name="MAIN_CLASS_NAME" value="test.threads.queue.stressed.TaskBenchmark" /> 1690 1804 <option name="VM_PARAMETERS" value="-ea -server -Xmx128m -XX:+PrintCommandLineFlags " /> 1691 <option name="PROGRAM_PARAMETERS" value=" test.threads.queue.stressed.DxNTask cpu100000" />1805 <option name="PROGRAM_PARAMETERS" value="--task=test.threads.queue.stressed.DxNTask --payload=cpu --opsPerPacket=100000" /> 1692 1806 <option name="WORKING_DIRECTORY" value="file://$PROJECT_DIR$" /> 1693 1807 <option name="ALTERNATIVE_JRE_PATH_ENABLED" value="true" /> … … 1708 1822 <RunnerSettings RunnerId="Run" /> 1709 1823 <ConfigurationWrapper RunnerId="Debug" /> 1824 <ConfigurationWrapper RunnerId="Run" /> 1825 <method /> 1826 </configuration> 1827 <configuration default="false" name="unstressed.TaskBenchmark[Disruptor]" type="Application" factoryName="Application"> 1828 <option name="MAIN_CLASS_NAME" value="test.threads.queue.stressed.TaskBenchmark" /> 1829 <option name="VM_PARAMETERS" value="-ea -server -Xmx128m -XX:+PrintCommandLineFlags " /> 1830 <option name="PROGRAM_PARAMETERS" value="-task=test.threads.queue.unstressed.DisruptorTask --payload=none --opsPerPacket=128" /> 1831 <option name="WORKING_DIRECTORY" value="file://$PROJECT_DIR$" /> 1832 <option name="ALTERNATIVE_JRE_PATH_ENABLED" value="true" /> 1833 <option name="ALTERNATIVE_JRE_PATH" value="$PROJECT_DIR$/../../../../1.7.0.jdk/Contents/Home" /> 1834 <option name="ENABLE_SWING_INSPECTOR" value="false" /> 1835 <option name="ENV_VARIABLES" /> 1836 <option name="PASS_PARENT_ENVS" value="true" /> 1837 <module name="test" /> 1838 <envs /> 1839 <RunnerSettings RunnerId="Debug"> 1840 <option name="DEBUG_PORT" value="50636" /> 1841 <option name="TRANSPORT" value="0" /> 1842 <option name="LOCAL" value="true" /> 1843 </RunnerSettings> 1844 <RunnerSettings RunnerId="Profile "> 1845 <option name="myExternalizedOptions" value=" snapshots-dir= additional-options2=onexit\=snapshot " /> 1846 </RunnerSettings> 1847 <RunnerSettings RunnerId="Run" /> 1848 <ConfigurationWrapper RunnerId="Debug" /> 1849 <ConfigurationWrapper RunnerId="Run" /> 1850 <method /> 1851 </configuration> 1852 <configuration default="false" name="unstressed.TaskBenchmark[ABQBusyWait]" type="Application" factoryName="Application"> 1853 <option name="MAIN_CLASS_NAME" value="test.threads.queue.stressed.TaskBenchmark" /> 1854 <option name="VM_PARAMETERS" value="-ea -server -Xmx128m -XX:+PrintCommandLineFlags " /> 1855 <option name="PROGRAM_PARAMETERS" value="-task=test.threads.queue.unstressed.QueueTask --payload=none --opsPerPacket=128 -Dtask.queue-factory=test.threads.queue.unstressed.impl.ABQBusyWaitQueue" /> 1856 <option name="WORKING_DIRECTORY" value="file://$PROJECT_DIR$" /> 1857 <option name="ALTERNATIVE_JRE_PATH_ENABLED" value="true" /> 1858 <option name="ALTERNATIVE_JRE_PATH" value="$PROJECT_DIR$/../../../../1.7.0.jdk/Contents/Home" /> 1859 <option name="ENABLE_SWING_INSPECTOR" value="false" /> 1860 <option name="ENV_VARIABLES" /> 1861 <option name="PASS_PARENT_ENVS" value="true" /> 1862 <module name="test" /> 1863 <envs /> 1864 <RunnerSettings RunnerId="Profile "> 1865 <option name="myExternalizedOptions" value=" snapshots-dir= additional-options2=onexit\=snapshot " /> 1866 </RunnerSettings> 1867 <RunnerSettings RunnerId="Run" /> 1868 <ConfigurationWrapper RunnerId="Run" /> 1869 <method /> 1870 </configuration> 1871 <configuration default="false" name="unstressed.TaskBenchmark[ABQ]" type="Application" factoryName="Application"> 1872 <option name="MAIN_CLASS_NAME" value="test.threads.queue.stressed.TaskBenchmark" /> 1873 <option name="VM_PARAMETERS" value="-ea -server -Xmx128m -XX:+PrintCommandLineFlags " /> 1874 <option name="PROGRAM_PARAMETERS" value="--task=test.threads.queue.unstressed.QueueTask --payload=none --opsPerPacket=128 -Dtask.queue-factory=test.threads.queue.unstressed.impl.ABQWrapperQueue" /> 1875 <option name="WORKING_DIRECTORY" value="file://$PROJECT_DIR$" /> 1876 <option name="ALTERNATIVE_JRE_PATH_ENABLED" value="true" /> 1877 <option name="ALTERNATIVE_JRE_PATH" value="$PROJECT_DIR$/../../../../1.7.0.jdk/Contents/Home" /> 1878 <option name="ENABLE_SWING_INSPECTOR" value="false" /> 1879 <option name="ENV_VARIABLES" /> 1880 <option name="PASS_PARENT_ENVS" value="true" /> 1881 <module name="test" /> 1882 <envs /> 1883 <RunnerSettings RunnerId="Profile "> 1884 <option name="myExternalizedOptions" value=" snapshots-dir= additional-options2=onexit\=snapshot " /> 1885 </RunnerSettings> 1886 <RunnerSettings RunnerId="Run" /> 1887 <ConfigurationWrapper RunnerId="Run" /> 1888 <method /> 1889 </configuration> 1890 <configuration default="false" name="unstressed.TaskBenchmark[SESD]" type="Application" factoryName="Application"> 1891 <option name="MAIN_CLASS_NAME" value="test.threads.queue.stressed.TaskBenchmark" /> 1892 <option name="VM_PARAMETERS" value="-ea -server -Xmx128m -XX:+PrintCommandLineFlags " /> 1893 <option name="PROGRAM_PARAMETERS" value="-task=test.threads.queue.unstressed.QueueTask --payload=none --opsPerPacket=128 -Dtask.queue-factory=test.threads.queue.unstressed.impl.SESDQueue" /> 1894 <option name="WORKING_DIRECTORY" value="file://$PROJECT_DIR$" /> 1895 <option name="ALTERNATIVE_JRE_PATH_ENABLED" value="true" /> 1896 <option name="ALTERNATIVE_JRE_PATH" value="$PROJECT_DIR$/../../../../1.7.0.jdk/Contents/Home" /> 1897 <option name="ENABLE_SWING_INSPECTOR" value="false" /> 1898 <option name="ENV_VARIABLES" /> 1899 <option name="PASS_PARENT_ENVS" value="true" /> 1900 <module name="test" /> 1901 <envs /> 1902 <RunnerSettings RunnerId="Profile "> 1903 <option name="myExternalizedOptions" value=" snapshots-dir= additional-options2=onexit\=snapshot " /> 1904 </RunnerSettings> 1905 <RunnerSettings RunnerId="Run" /> 1710 1906 <ConfigurationWrapper RunnerId="Run" /> 1711 1907 <method /> … … 1733 1929 <method /> 1734 1930 </configuration> 1735 <list size="21"> 1736 <item index="0" class="java.lang.String" itemvalue="JUnit.CABSESDQueueTest" /> 1737 <item index="1" class="java.lang.String" itemvalue="JUnit.test.threads.queue in test" /> 1738 <item index="2" class="java.lang.String" itemvalue="JUnit.test.threads.queue.impl in test" /> 1739 <item index="3" class="java.lang.String" itemvalue="Application.Increment2" /> 1740 <item index="4" class="java.lang.String" itemvalue="Application.QueueBenchmark[ABQ]" /> 1741 <item index="5" class="java.lang.String" itemvalue="Application.QueueBenchmark[SESDMaskedOptimized]" /> 1742 <item index="6" class="java.lang.String" itemvalue="Application.QueueBenchmark[CABSESD]" /> 1743 <item index="7" class="java.lang.String" itemvalue="Application.QueueBenchmark[DisruptorNoBatch]" /> 1744 <item index="8" class="java.lang.String" itemvalue="Application.QueueBenchmark[DisruptorWithBatch]" /> 1745 <item index="9" class="java.lang.String" itemvalue="Application.QueueBenchmark[Sequencer]" /> 1746 <item index="10" class="java.lang.String" itemvalue="Application.QueueBenchmark[LongCABSESDSequencer] -XX:CompileCommand=print,*.moveTail -XX:+PrintInlining" /> 1747 <item index="11" class="java.lang.String" itemvalue="Application.LogParser" /> 1748 <item index="12" class="java.lang.String" itemvalue="Application.UnsafeArraysSorter[jdk]" /> 1749 <item index="13" class="java.lang.String" itemvalue="Application.UnsafeArraysSorter[unsafe] " /> 1750 <item index="14" class="java.lang.String" itemvalue="Application.TestPrintAssembly" /> 1751 <item index="15" class="java.lang.String" itemvalue="Application.SimpleLongArrayOpsBenchmark[safe]" /> 1752 <item index="16" class="java.lang.String" itemvalue="Application.SimpleLongArrayOpsBenchmark[unsafe]" /> 1753 <item index="17" class="java.lang.String" itemvalue="Application.TaskBenchmark[SingleThread]" /> 1754 <item index="18" class="java.lang.String" itemvalue="Application.TaskBenchmark[ABQxNTask]" /> 1755 <item index="19" class="java.lang.String" itemvalue="Application.TaskBenchmark[DxNTask]" /> 1756 <item index="20" class="java.lang.String" itemvalue="JUnit.MultithreadedBitSetPerformanceTest.testScalePerformance" /> 1931 <list size="26"> 1932 <item index="0" class="java.lang.String" itemvalue="Application.Increment2" /> 1933 <item index="1" class="java.lang.String" itemvalue="Application.QueueBenchmark[ABQ]" /> 1934 <item index="2" class="java.lang.String" itemvalue="Application.QueueBenchmark[ABQBusyWait]" /> 1935 <item index="3" class="java.lang.String" itemvalue="Application.QueueBenchmark[SESDMaskedOptimized]" /> 1936 <item index="4" class="java.lang.String" itemvalue="Application.QueueBenchmark[CABSESD]" /> 1937 <item index="5" class="java.lang.String" itemvalue="Application.QueueBenchmark[DisruptorNoBatch]" /> 1938 <item index="6" class="java.lang.String" itemvalue="Application.QueueBenchmark[DisruptorWithBatch]" /> 1939 <item index="7" class="java.lang.String" itemvalue="Application.QueueBenchmark[Sequencer]" /> 1940 <item index="8" class="java.lang.String" itemvalue="Application.QueueBenchmark[LongCABSESDSequencer] -XX:CompileCommand=print,*.moveTail -XX:+PrintInlining" /> 1941 <item index="9" class="java.lang.String" itemvalue="Application.LogParser" /> 1942 <item index="10" class="java.lang.String" itemvalue="Application.UnsafeArraysSorter[jdk]" /> 1943 <item index="11" class="java.lang.String" itemvalue="Application.UnsafeArraysSorter[unsafe] " /> 1944 <item index="12" class="java.lang.String" itemvalue="Application.TestPrintAssembly" /> 1945 <item index="13" class="java.lang.String" itemvalue="Application.SimpleLongArrayOpsBenchmark[safe]" /> 1946 <item index="14" class="java.lang.String" itemvalue="Application.SimpleLongArrayOpsBenchmark[unsafe]" /> 1947 <item index="15" class="java.lang.String" itemvalue="Application.TaskBenchmark[SingleThread]" /> 1948 <item index="16" class="java.lang.String" itemvalue="Application.TaskBenchmark[ABQxNTask]" /> 1949 <item index="17" class="java.lang.String" itemvalue="Application.TaskBenchmark[DxNTask]" /> 1950 <item index="18" class="java.lang.String" itemvalue="Application.unstressed.TaskBenchmark[Disruptor]" /> 1951 <item index="19" class="java.lang.String" itemvalue="Application.unstressed.TaskBenchmark[ABQBusyWait]" /> 1952 <item index="20" class="java.lang.String" itemvalue="Application.unstressed.TaskBenchmark[ABQ]" /> 1953 <item index="21" class="java.lang.String" itemvalue="Application.unstressed.TaskBenchmark[SESD]" /> 1954 <item index="22" class="java.lang.String" itemvalue="JUnit.CABSESDQueueTest" /> 1955 <item index="23" class="java.lang.String" itemvalue="JUnit.test.threads.queue in test" /> 1956 <item index="24" class="java.lang.String" itemvalue="JUnit.test.threads.queue.unstressed.impl in test" /> 1957 <item index="25" class="java.lang.String" itemvalue="JUnit.MultithreadedBitSetPerformanceTest.testScalePerformance" /> 1757 1958 </list> 1758 1959 <configuration name="<template>" type="WebApp" default="true" selected="false"> … … 1839 2040 <window_info id="Changes" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.32986766" sideWeight="0.5" order="15" side_tool="false" content_ui="tabs" /> 1840 2041 <window_info id="Palette" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="5" side_tool="false" content_ui="tabs" /> 2042 <window_info id="Find" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.31713554" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" /> 1841 2043 <window_info id="Ant Build" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.25" sideWeight="0.5" order="2" side_tool="false" content_ui="tabs" /> 1842 <window_info id="Debug" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.41 813135" sideWeight="0.5" order="5" side_tool="false" content_ui="tabs" />2044 <window_info id="Debug" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.4168798" sideWeight="0.5" order="5" side_tool="false" content_ui="tabs" /> 1843 2045 <window_info id="Version Control" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.32736573" sideWeight="0.0" order="12" side_tool="false" content_ui="tabs" /> 1844 2046 <window_info id="Messages" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.32352942" sideWeight="0.0" order="13" side_tool="false" content_ui="tabs" /> … … 1847 2049 <window_info id="Maven Projects" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.3298969" sideWeight="0.5" order="0" side_tool="false" content_ui="tabs" /> 1848 2050 <window_info id="Commander" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.3994253" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" /> 1849 <window_info id="Project" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible=" true" weight="0.18678162" sideWeight="0.6764706" order="0" side_tool="false" content_ui="tabs" />2051 <window_info id="Project" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.18678162" sideWeight="0.47058824" order="0" side_tool="false" content_ui="tabs" /> 1850 2052 <window_info id="Dependency Viewer" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="14" side_tool="false" content_ui="tabs" /> 1851 <window_info id="Run" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.5 304991" sideWeight="0.5" order="4" side_tool="false" content_ui="tabs" />2053 <window_info id="Run" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.5294118" sideWeight="0.5" order="4" side_tool="false" content_ui="tabs" /> 1852 2054 <window_info id="Event Log" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.32993513" sideWeight="0.5" order="7" side_tool="true" content_ui="tabs" /> 1853 2055 <window_info id="Dataflow to this" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="11" side_tool="false" content_ui="tabs" /> … … 1858 2060 <window_info id="SVN Properties" active="true" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" weight="0.32948717" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" /> 1859 2061 <window_info id="Message" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="2" side_tool="false" content_ui="tabs" /> 1860 <window_info id="Find" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.31822386" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" />1861 2062 <window_info id="Favorites" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="2" side_tool="true" content_ui="tabs" /> 1862 2063 <window_info id="TeamCity" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="0" side_tool="false" content_ui="tabs" /> … … 1941 2142 </component> 1942 2143 <component name="editorHistoryManager"> 1943 <entry file=" jar://$MAVEN_REPOSITORY$/com/googlecode/disruptor/disruptor/2.8/disruptor-2.8-sources.jar!/com/lmax/disruptor/util/PaddedAtomicLong.java">2144 <entry file="file://$PROJECT_DIR$/src/main/java/test/threads/queue/unstressed/impl/ABQBusyWaitQueue.java"> 1944 2145 <provider selected="true" editor-type-id="text-editor"> 1945 <state line="24" column="4" selection-start="809" selection-end="858" vertical-scroll-proportion="0.0" /> 2146 <state line="13" column="29" selection-start="312" selection-end="328" vertical-scroll-proportion="0.0"> 2147 <folding> 2148 <element signature="method#ABQBusyWaitQueue#0;class#ABQBusyWaitQueue#0" expanded="false" /> 2149 <element signature="method#inc#0;class#ABQBusyWaitQueue#0" expanded="false" /> 2150 <element signature="method#enqueue#0;class#ABQBusyWaitQueue#0" expanded="false" /> 2151 <element signature="method#dequeue#0;class#ABQBusyWaitQueue#0" expanded="false" /> 2152 <element signature="method#disownQueue#0;class#ABQBusyWaitQueue#0" expanded="false" /> 2153 <element signature="method#ownQueue#0;class#ABQBusyWaitQueue#0" expanded="false" /> 2154 <element signature="method#size#0;class#ABQBusyWaitQueue#0" expanded="false" /> 2155 <element signature="method#factory#0;class#ABQBusyWaitQueue#0" expanded="false" /> 2156 <element signature="class#2538:2859" expanded="false" /> 2157 <element signature="method#create#0;class#2538:2859" expanded="false" /> 2158 <element signature="method#toString#0;class#2538:2859" expanded="false" /> 2159 </folding> 2160 </state> 1946 2161 </provider> 1947 2162 </entry> 1948 <entry file="file://$PROJECT_DIR$/src/main/java/test/threads/queue/ stressed/ITask.java">2163 <entry file="file://$PROJECT_DIR$/src/main/java/test/threads/queue/unstressed/QueueTask.java"> 1949 2164 <provider selected="true" editor-type-id="text-editor"> 1950 <state line="25" column="25" selection-start="684" selection-end="684" vertical-scroll-proportion="0.0" /> 1951 </provider> 1952 </entry> 1953 <entry file="file://$PROJECT_DIR$/config.properties"> 1954 <provider selected="true" editor-type-id="text-editor"> 1955 <state line="11" column="10" selection-start="253" selection-end="253" vertical-scroll-proportion="0.0" /> 1956 </provider> 1957 </entry> 1958 <entry file="file://$PROJECT_DIR$/src/main/resources/log4j.properties"> 1959 <provider selected="true" editor-type-id="text-editor"> 1960 <state line="14" column="56" selection-start="607" selection-end="607" vertical-scroll-proportion="0.33269963" /> 1961 </provider> 1962 </entry> 1963 <entry file="file://$PROJECT_DIR$/config.properties.template"> 1964 <provider selected="true" editor-type-id="text-editor"> 1965 <state line="11" column="15" selection-start="252" selection-end="252" vertical-scroll-proportion="0.26140684" /> 1966 </provider> 1967 </entry> 1968 <entry file="jar://$MAVEN_REPOSITORY$/com/googlecode/disruptor/disruptor/2.8/disruptor-2.8-sources.jar!/com/lmax/disruptor/YieldingWaitStrategy.java"> 1969 <provider selected="true" editor-type-id="text-editor"> 1970 <state line="27" column="19" selection-start="1020" selection-end="1020" vertical-scroll-proportion="0.0" /> 1971 </provider> 1972 </entry> 1973 <entry file="file://$PROJECT_DIR$/src/main/java/test/threads/queue/stressed/memory/MemoryWasterFactory.java"> 1974 <provider selected="true" editor-type-id="text-editor"> 1975 <state line="44" column="33" selection-start="1243" selection-end="1243" vertical-scroll-proportion="1.2162162" /> 1976 </provider> 1977 </entry> 1978 <entry file="jar://$MAVEN_REPOSITORY$/com/googlecode/disruptor/disruptor/2.8/disruptor-2.8-sources.jar!/com/lmax/disruptor/WaitStrategy.java"> 1979 <provider selected="true" editor-type-id="text-editor"> 1980 <state line="16" column="18" selection-start="617" selection-end="617" vertical-scroll-proportion="0.0" /> 1981 </provider> 1982 </entry> 1983 <entry file="file://$PROJECT_DIR$/src/main/java/test/threads/queue/stressed/memory/LongArrayMessage.java"> 1984 <provider selected="true" editor-type-id="text-editor"> 1985 <state line="16" column="11" selection-start="353" selection-end="353" vertical-scroll-proportion="0.0" /> 1986 </provider> 1987 </entry> 1988 <entry file="file://$PROJECT_DIR$/src/main/java/test/threads/queue/stressed/DxNTask.java"> 1989 <provider selected="true" editor-type-id="text-editor"> 1990 <state line="74" column="25" selection-start="2568" selection-end="2568" vertical-scroll-proportion="0.0"> 1991 <folding /> 2165 <state line="31" column="27" selection-start="1121" selection-end="1121" vertical-scroll-proportion="0.0"> 2166 <folding> 2167 <element signature="docComment;class#QueueTask#0" expanded="true" /> 2168 </folding> 1992 2169 </state> 1993 2170 </provider> … … 1995 2172 <entry file="file://$PROJECT_DIR$/src/main/java/test/threads/queue/stressed/memory/CPUMemoryWasterFactory.java"> 1996 2173 <provider selected="true" editor-type-id="text-editor"> 1997 <state line="44" column="23" selection-start="1290" selection-end="1290" vertical-scroll-proportion="0.0" /> 2174 <state line="29" column="8" selection-start="826" selection-end="938" vertical-scroll-proportion="0.0"> 2175 <folding /> 2176 </state> 1998 2177 </provider> 1999 2178 </entry> 2000 <entry file="file://$PROJECT_DIR$/src/main/java/test/threads/queue/stressed/ ABQxNTask.java">2179 <entry file="file://$PROJECT_DIR$/src/main/java/test/threads/queue/stressed/memory/MemoryWasterFactory.java"> 2001 2180 <provider selected="true" editor-type-id="text-editor"> 2002 <state line="62" column="0" selection-start="1755" selection-end="1755" vertical-scroll-proportion="0.0" /> 2181 <state line="29" column="120" selection-start="932" selection-end="932" vertical-scroll-proportion="0.0"> 2182 <folding /> 2183 </state> 2184 </provider> 2185 </entry> 2186 <entry file="file://$PROJECT_DIR$/src/main/java/test/threads/queue/stressed/cpu/CPUWasterFactory.java"> 2187 <provider selected="true" editor-type-id="text-editor"> 2188 <state line="30" column="0" selection-start="826" selection-end="826" vertical-scroll-proportion="0.0"> 2189 <folding /> 2190 </state> 2191 </provider> 2192 </entry> 2193 <entry file="file://$PROJECT_DIR$/src/main/java/test/threads/queue/common/FSM.java"> 2194 <provider selected="true" editor-type-id="text-editor"> 2195 <state line="32" column="13" selection-start="793" selection-end="793" vertical-scroll-proportion="0.0"> 2196 <folding> 2197 <element signature="method#CAS#0;class#FSM#0" expanded="false" /> 2198 <element signature="method#changeState#0;class#FSM#0" expanded="false" /> 2199 <element signature="method#autoTransition#0;class#FSM#0" expanded="false" /> 2200 <element signature="method#is#0;class#FSM#0" expanded="false" /> 2201 <element signature="method#state#0;class#FSM#0" expanded="false" /> 2202 <element signature="method#stateOrdinal#0;class#FSM#0" expanded="false" /> 2203 <element signature="method#waitForState#0;class#FSM#0" expanded="false" /> 2204 <element signature="method#initialize#0;class#FSM#0" expanded="false" /> 2205 <element signature="method#start#0;class#FSM#0" expanded="false" /> 2206 <element signature="method#pause#0;class#FSM#0" expanded="false" /> 2207 <element signature="method#terminate#0;class#FSM#0" expanded="false" /> 2208 </folding> 2209 </state> 2210 </provider> 2211 </entry> 2212 <entry file="jar://$MAVEN_REPOSITORY$/com/googlecode/disruptor/disruptor/2.8/disruptor-2.8-sources.jar!/com/lmax/disruptor/BusySpinWaitStrategy.java"> 2213 <provider selected="true" editor-type-id="text-editor"> 2214 <state line="39" column="0" selection-start="1437" selection-end="1437" vertical-scroll-proportion="0.0"> 2215 <folding /> 2216 </state> 2217 </provider> 2218 </entry> 2219 <entry file="file://$PROJECT_DIR$/src/main/java/test/threads/queue/unstressed/DisruptorTask.java"> 2220 <provider selected="true" editor-type-id="text-editor"> 2221 <state line="69" column="0" selection-start="2242" selection-end="2242" vertical-scroll-proportion="0.0"> 2222 <folding> 2223 <element signature="imports" expanded="true" /> 2224 <element signature="method#workersRequired#0;class#DisruptorTask#0" expanded="false" /> 2225 <element signature="method#terminate#0;class#DisruptorTask#0" expanded="false" /> 2226 <element signature="method#toString#0;class#DisruptorTask#0" expanded="false" /> 2227 <element signature="class#PassThroughHandler#0;class#DisruptorTask#0" expanded="false" /> 2228 <element signature="method#PassThroughHandler#0;class#PassThroughHandler#0;class#DisruptorTask#0" expanded="false" /> 2229 <element signature="method#onEvent#0;class#PassThroughHandler#0;class#DisruptorTask#0" expanded="false" /> 2230 <element signature="class#Enqueuer#0;class#DisruptorTask#0" expanded="false" /> 2231 <element signature="method#Enqueuer#0;class#Enqueuer#0;class#DisruptorTask#0" expanded="false" /> 2232 <element signature="method#enqueueEventsBatch#0;class#Enqueuer#0;class#DisruptorTask#0" expanded="false" /> 2233 </folding> 2234 </state> 2235 </provider> 2236 </entry> 2237 <entry file="file://$PROJECT_DIR$/src/main/java/test/threads/queue/common/BaseEnqueuer.java"> 2238 <provider selected="true" editor-type-id="text-editor"> 2239 <state line="64" column="0" selection-start="1913" selection-end="1913" vertical-scroll-proportion="0.18648648"> 2240 <folding> 2241 <element signature="imports" expanded="true" /> 2242 <element signature="docComment;class#BaseEnqueuer#0" expanded="true" /> 2243 </folding> 2244 </state> 2245 </provider> 2246 </entry> 2247 <entry file="jar:///Library/Java/JavaVirtualMachines/1.6.0_26-b03-377.jdk/Contents/Home/src.jar!/src/java/lang/Thread.java"> 2248 <provider selected="true" editor-type-id="text-editor"> 2249 <state line="1905" column="24" selection-start="72624" selection-end="72624" vertical-scroll-proportion="0.6621622"> 2250 <folding /> 2251 </state> 2252 </provider> 2253 </entry> 2254 <entry file="file://$PROJECT_DIR$/src/main/java/test/threads/queue/stressed/AbstractTask.java"> 2255 <provider selected="true" editor-type-id="text-editor"> 2256 <state line="143" column="27" selection-start="5258" selection-end="5258" vertical-scroll-proportion="0.0"> 2257 <folding> 2258 <element signature="method#AbstractTask#0;class#AbstractTask#0" expanded="false" /> 2259 <element signature="method#AbstractTask#1;class#AbstractTask#0" expanded="false" /> 2260 <element signature="method#AbstractTask#2;class#AbstractTask#0" expanded="false" /> 2261 <element signature="method#AbstractTask#3;class#AbstractTask#0" expanded="false" /> 2262 <element signature="method#bufferSize#0;class#AbstractTask#0" expanded="false" /> 2263 <element signature="method#eventsInBatch#0;class#AbstractTask#0" expanded="false" /> 2264 <element signature="method#eventFactory#0;class#AbstractTask#0" expanded="false" /> 2265 <element signature="method#execute#0;class#AbstractTask#0" expanded="false" /> 2266 <element signature="method#terminate#0;class#AbstractTask#0" expanded="false" /> 2267 <element signature="method#dequeueWhileTimeIsNotEllapsed#0;class#AbstractTask#0" expanded="false" /> 2268 <element signature="method#toString#0;class#AbstractTask#0" expanded="false" /> 2269 <element signature="class#EventEnqueuer#0;class#AbstractTask#0" expanded="false" /> 2270 <element signature="method#EventEnqueuer#0;class#EventEnqueuer#0;class#AbstractTask#0" expanded="false" /> 2271 <element signature="method#enqueueEventsBatch#0;class#EventEnqueuer#0;class#AbstractTask#0" expanded="false" /> 2272 </folding> 2273 </state> 2274 </provider> 2275 </entry> 2276 <entry file="file://$PROJECT_DIR$/config.properties"> 2277 <provider selected="true" editor-type-id="text-editor"> 2278 <state line="9" column="34" selection-start="250" selection-end="250" vertical-scroll-proportion="0.0"> 2279 <folding /> 2280 </state> 2281 </provider> 2282 </entry> 2283 <entry file="file://$PROJECT_DIR$/src/main/java/test/threads/queue/stressed/IUsefulWorkFactory.java"> 2284 <provider selected="true" editor-type-id="text-editor"> 2285 <state line="10" column="17" selection-start="201" selection-end="201" vertical-scroll-proportion="0.16600266"> 2286 <folding /> 2287 </state> 2288 </provider> 2289 </entry> 2290 <entry file="file://$PROJECT_DIR$/src/main/java/test/threads/queue/unstressed/DummyWasterFactory.java"> 2291 <provider selected="true" editor-type-id="text-editor"> 2292 <state line="51" column="57" selection-start="1642" selection-end="1642" vertical-scroll-proportion="0.0"> 2293 <folding> 2294 <element signature="docComment;class#NoTimeWaster#0;class#DummyWasterFactory#0" expanded="true" /> 2295 </folding> 2296 </state> 2297 </provider> 2298 </entry> 2299 <entry file="file://$PROJECT_DIR$/src/main/java/test/threads/queue/stressed/ITask.java"> 2300 <provider selected="true" editor-type-id="text-editor"> 2301 <state line="65" column="67" selection-start="2243" selection-end="2243" vertical-scroll-proportion="0.0"> 2302 <folding /> 2303 </state> 2003 2304 </provider> 2004 2305 </entry> 2005 2306 <entry file="file://$PROJECT_DIR$/src/main/java/test/threads/queue/stressed/TaskBenchmark.java"> 2006 2307 <provider selected="true" editor-type-id="text-editor"> 2007 <state line="126" column="41" selection-start="5085" selection-end="5085" vertical-scroll-proportion="0.0" /> 2008 </provider> 2009 </entry> 2010 <entry file="file://$PROJECT_DIR$/src/main/java/test/threads/queue/stressed/AbstractTask.java"> 2011 <provider selected="true" editor-type-id="text-editor"> 2012 <state line="237" column="0" selection-start="8557" selection-end="8557" vertical-scroll-proportion="0.0" /> 2013 </provider> 2014 </entry> 2015 <entry file="file://$PROJECT_DIR$/src/main/java/test/threads/queue/stressed/SingleThreadedTask.java"> 2016 <provider selected="true" editor-type-id="text-editor"> 2017 <state line="77" column="41" selection-start="2741" selection-end="2741" vertical-scroll-proportion="0.0" /> 2018 </provider> 2019 </entry> 2020 <entry file="file://$PROJECT_DIR$/task_benchmark.sh"> 2021 <provider selected="true" editor-type-id="text-editor"> 2022 <state line="17" column="18" selection-start="355" selection-end="355" vertical-scroll-proportion="0.5743243"> 2023 <folding /> 2308 <state line="140" column="34" selection-start="5847" selection-end="5847" vertical-scroll-proportion="-0.4445946"> 2309 <folding> 2310 <element signature="imports" expanded="true" /> 2311 <element signature="docComment;class#TaskBenchmark#0" expanded="true" /> 2312 <element signature="docComment;method#main#0;class#TaskBenchmark#0" expanded="true" /> 2313 </folding> 2024 2314 </state> 2025 2315 </provider> -
Tests/JAVA/test/unstressed_task_benchmark.sh
r481 r482 8 8 9 9 10 STRESS_TYPE="$1"11 12 10 TYPE="$2" 13 11 mvn compile … … 15 13 rm result.data 16 14 17 #for OPS in 1000000 100000 10000 1024 128 16 4 18 for OPS in 4096 2048 1024 512 256 128 15 for OPS in 1000000 100000 10000 1024 128 16 4 19 16 do 20 17 mvn exec:java -Dexec.mainClass="test.threads.queue.stressed.TaskBenchmark" \ 21 -Dexec.args=" test.threads.queue.stressed.$TYPE $STRESS_TYPE $OPS" -e18 -Dexec.args="--task=test.threads.queue.unstressed.$TYPE --payload=cpu --opsPerPacket=1" -e 22 19 done
Note: See TracChangeset
for help on using the changeset viewer.