package org.nd4j.aeron.ipc; import io.aeron.driver.MediaDriver; import io.aeron.driver.ThreadingMode; import org.agrona.concurrent.BusySpinIdleStrategy; import org.agrona.concurrent.SigIntBarrier; import static java.lang.System.setProperty; import static org.agrona.concurrent.UnsafeBuffer.DISABLE_BOUNDS_CHECKS_PROP_NAME; /** * Created by agibsonccc on 9/22/16. */ public class LowLatencyMediaDriver { private LowLatencyMediaDriver() {} @SuppressWarnings("checkstyle:UncommentedMain") public static void main(final String... args) { MediaDriver.loadPropertiesFiles(args); setProperty(DISABLE_BOUNDS_CHECKS_PROP_NAME, "true"); setProperty("aeron.mtu.length", "16384"); setProperty("aeron.socket.so_sndbuf", "2097152"); setProperty("aeron.socket.so_rcvbuf", "2097152"); setProperty("aeron.rcv.initial.window.length", "2097152"); final MediaDriver.Context ctx = new MediaDriver.Context().threadingMode(ThreadingMode.DEDICATED).dirsDeleteOnStart(true) .termBufferSparseFile(false).conductorIdleStrategy(new BusySpinIdleStrategy()) .receiverIdleStrategy(new BusySpinIdleStrategy()) .senderIdleStrategy(new BusySpinIdleStrategy()); try (MediaDriver ignored = MediaDriver.launch(ctx)) { new SigIntBarrier().await(); } } }