Package org.agilewiki.jactor.bufferedEvents

Source Code of org.agilewiki.jactor.bufferedEvents.BufferedTimingTest

package org.agilewiki.jactor.bufferedEvents;

import junit.framework.TestCase;
import org.agilewiki.jactor.concurrent.JAThreadManager;
import org.agilewiki.jactor.concurrent.ThreadManager;

/**
* Test code.
*/
final public class BufferedTimingTest extends TestCase {
    public void testTiming() {
        int c = 2;
        int b = 3;
        int p = 4;
        int t = 4;

        //int c = 100000;
        //int b = 1000;
        //int p = 4;
        //int t = 4;

        //int c = 50000;
        //int b = 1000;
        //int p = 8;
        //int t = 8;

        //int c = 25000;
        //int b = 1000;
        //int p = 16;
        //int t = 16;

        //int c = 50000;
        //int b = 1000;
        //int p = 8;
        //int t = 4;

        //int c = 25000;
        //int b = 1000;
        //int p = 16;
        //int t = 4;

        //int c = 2500;
        //int b = 1000;
        //int p = 160;
        //int t = 4;

        //int c = 1000000;
        //int b = 1;
        //int p = 16;
        //int t = 4;

        ThreadManager threadManager = JAThreadManager.newThreadManager(t);
        try {
            Driver driver = new Driver(threadManager, c, b, p);
            JABufferedEventsFuture<Object> eventFuture = new JABufferedEventsFuture<Object>();
            eventFuture.send(driver, eventFuture);
            eventFuture.send(driver, eventFuture);
            long t0 = System.currentTimeMillis();
            eventFuture.send(driver, eventFuture);
            long t1 = System.currentTimeMillis();
            System.out.println("" + p + " parallel runs of " + (2 * c * b) + " messages each.");
            System.out.println("" + (p * 2 * c * b + 2 * p) + " messages sent with " + t + " threads.");
            if (t1 != t0)
                System.out.println("msgs per sec = " + ((c * b * p * 2L + 2L * p) * 1000L / (t1 - t0)));
        } finally {
            threadManager.close();
        }

        //burst size of 1000
        //4 parallel runs of 200000000 messages each.
        //800000008 messages sent with 4 threads.
        //msgs per sec = 82987551
        //12 nanoseconds per message

        //burst size of 1000
        //8 parallel runs of 100000000 messages each.
        //800000016 messages sent with 8 threads.
        //msgs per sec = 80256821
        //12 nanoseconds per message

        //burst size of 1000
        //16 parallel runs of 50000000 messages each.
        //800000032 messages sent with 16 threads.
        //msgs per sec = 83246618
        //12 nanoseconds per message

        //burst size of 1000
        //8 parallel runs of 100000000 messages each.
        //800000016 messages sent with 4 threads.
        //msgs per sec = 83927822
        //12 nanoseconds per message

        //burst size of 1000
        //16 parallel runs of 50000000 messages each.
        //800000032 messages sent with 4 threads.
        //msgs per sec = 85616438
        //12 nanoseconds per message

        //burst size of 1000
        //160 parallel runs of 5000000 messages each.
        //800000320 messages sent with 4 threads.
        //msgs per sec = 82584940
        //12 nanoseconds per message

        //burst size of 1
        //16 parallel runs of 2000000 messages each.
        //32000032 messages sent with 4 threads.
        //msgs per sec = 4468654
        //224 nanoseconds per message
    }
}
TOP

Related Classes of org.agilewiki.jactor.bufferedEvents.BufferedTimingTest

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.