Java源码示例:org.agrona.concurrent.NoOpIdleStrategy
示例1
static IdleStrategy idleStrategy()
{
final String strategyName = System.getProperty("fix.benchmark.engine_idle", "");
switch (strategyName)
{
case "noop":
return new NoOpIdleStrategy();
case "yield":
return new YieldingIdleStrategy();
default:
case "backoff":
return backoffIdleStrategy();
}
}
示例2
@Test
void defaultOptions()
{
final Configuration configuration = new Builder()
.numberOfMessages(123)
.messageTransceiverClass(InMemoryMessageTransceiver.class)
.outputFileNamePrefix("defaults")
.systemProperties(new Properties())
.build();
assertEquals(123, configuration.numberOfMessages());
assertEquals(DEFAULT_WARM_UP_ITERATIONS, configuration.warmUpIterations());
assertEquals(DEFAULT_ITERATIONS, configuration.iterations());
assertEquals(DEFAULT_BATCH_SIZE, configuration.batchSize());
assertEquals(MIN_MESSAGE_LENGTH, configuration.messageLength());
assertSame(InMemoryMessageTransceiver.class, configuration.messageTransceiverClass());
assertSame(NoOpIdleStrategy.INSTANCE, configuration.sendIdleStrategy());
assertSame(NoOpIdleStrategy.INSTANCE, configuration.receiveIdleStrategy());
assertEquals(Paths.get("results").toAbsolutePath(), configuration.outputDirectory());
assertEquals("defaults_123_" + DEFAULT_BATCH_SIZE + "_" + MIN_MESSAGE_LENGTH +
"_e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
configuration.outputFileNamePrefix());
}
示例3
@Test
void fromSystemPropertiesDefaults()
{
setProperty(OUTPUT_FILE_NAME_PREFIX_PROP_NAME, "test-out-prefix");
setProperty(MESSAGES_PROP_NAME, "42");
setProperty(MESSAGE_TRANSCEIVER_PROP_NAME, InMemoryMessageTransceiver.class.getName());
final Configuration configuration = fromSystemProperties();
assertEquals(42, configuration.numberOfMessages());
assertEquals(DEFAULT_WARM_UP_ITERATIONS, configuration.warmUpIterations());
assertEquals(DEFAULT_ITERATIONS, configuration.iterations());
assertEquals(DEFAULT_BATCH_SIZE, configuration.batchSize());
assertEquals(MIN_MESSAGE_LENGTH, configuration.messageLength());
assertSame(InMemoryMessageTransceiver.class, configuration.messageTransceiverClass());
assertSame(NoOpIdleStrategy.INSTANCE, configuration.sendIdleStrategy());
assertSame(NoOpIdleStrategy.INSTANCE, configuration.receiveIdleStrategy());
assertEquals(Paths.get("results").toAbsolutePath(), configuration.outputDirectory());
}
示例4
public static void main(final String[] args)
{
loadPropertiesFiles(args);
final MediaDriver.Context ctx = new MediaDriver.Context()
.termBufferSparseFile(false)
.useWindowsHighResTimer(true)
.threadingMode(ThreadingMode.DEDICATED)
.conductorIdleStrategy(BusySpinIdleStrategy.INSTANCE)
.receiverIdleStrategy(NoOpIdleStrategy.INSTANCE)
.senderIdleStrategy(NoOpIdleStrategy.INSTANCE);
try (MediaDriver ignored = MediaDriver.launch(ctx))
{
new ShutdownSignalBarrier().await();
System.out.println("Shutdown Driver...");
}
}
示例5
@Before
public void setUp()
{
mediaDriver = TestFixtures.launchMediaDriver();
aeronArchive = AeronArchive.connect();
recordingIdLookup = new RecordingIdLookup(new YieldingIdleStrategy(), aeron().countersReader());
aeronArchive.startRecording(CHANNEL, STREAM_ID, SourceLocation.LOCAL);
final Aeron aeron = aeron();
publication = aeron.addExclusivePublication(CHANNEL, STREAM_ID);
subscription = aeron.addSubscription(CHANNEL, STREAM_ID);
IoUtil.deleteIfExists(logFile(SESSION_ID));
IoUtil.deleteIfExists(logFile(SESSION_ID_2));
newReplayIndex();
query = new ReplayQuery(
DEFAULT_LOG_FILE_DIR,
DEFAULT_LOGGER_CACHE_NUM_SETS,
DEFAULT_LOGGER_CACHE_SET_SIZE,
existingBufferFactory,
DEFAULT_OUTBOUND_LIBRARY_STREAM,
new NoOpIdleStrategy(),
aeronArchive,
errorHandler,
DEFAULT_ARCHIVE_REPLAY_STREAM);
}
示例6
@Test
void explicitOptions(final @TempDir Path tempDir)
{
final Path outputDirectory = tempDir.resolve("my-output-dir");
final Configuration configuration = new Builder()
.warmUpIterations(3)
.iterations(11)
.numberOfMessages(666)
.batchSize(4)
.messageLength(119)
.messageTransceiverClass(InMemoryMessageTransceiver.class)
.sendIdleStrategy(NoOpIdleStrategy.INSTANCE)
.receiveIdleStrategy(YieldingIdleStrategy.INSTANCE)
.outputDirectory(outputDirectory)
.outputFileNamePrefix("explicit-opts")
.build();
assertEquals(3, configuration.warmUpIterations());
assertEquals(11, configuration.iterations());
assertEquals(666, configuration.numberOfMessages());
assertEquals(4, configuration.batchSize());
assertEquals(119, configuration.messageLength());
assertSame(InMemoryMessageTransceiver.class, configuration.messageTransceiverClass());
assertSame(NoOpIdleStrategy.INSTANCE, configuration.sendIdleStrategy());
assertSame(YieldingIdleStrategy.INSTANCE, configuration.receiveIdleStrategy());
assertEquals(outputDirectory.toAbsolutePath(), configuration.outputDirectory());
assertTrue(configuration.outputFileNamePrefix().startsWith("explicit-opts"));
}
示例7
@Test
void toStringPrintsConfiguredValues()
{
final Configuration configuration = new Builder()
.warmUpIterations(4)
.iterations(10)
.numberOfMessages(777)
.batchSize(2)
.messageLength(64)
.messageTransceiverClass(InMemoryMessageTransceiver.class)
.sendIdleStrategy(NoOpIdleStrategy.INSTANCE)
.receiveIdleStrategy(YieldingIdleStrategy.INSTANCE)
.outputFileNamePrefix("my-file")
.systemProperties(props("java", "25"))
.build();
assertEquals("Configuration{" +
"\n warmUpIterations=4" +
"\n iterations=10" +
"\n numberOfMessages=777" +
"\n batchSize=2" +
"\n messageLength=64" +
"\n messageTransceiverClass=uk.co.real_logic.benchmarks.remote.InMemoryMessageTransceiver" +
"\n sendIdleStrategy=NoOpIdleStrategy{alias=noop}" +
"\n receiveIdleStrategy=YieldingIdleStrategy{alias=yield}" +
"\n outputDirectory=" + Paths.get("results").toAbsolutePath() +
"\n outputFileNamePrefix=my-file_777_2_64" +
"_73ccec448ba12264acb12e7f9f36fddc73e8c62e43549b786a901c88891610c9" +
"\n}",
configuration.toString());
}