Search in sources :

Example 1 with Hoarde

use of org.nustaq.kontraktor.util.Hoarde in project kontraktor by RuedigerMoeller.

the class HoardeTest method testGenericAct.

private void testGenericAct(ArrayList toEncode, int threads, int max, boolean verify) throws InterruptedException {
    int actcount = 0;
    Hoarde<DecAct> oc = new Hoarde<DecAct>(threads, DecAct.class);
    oc.each(dec -> dec.init());
    AtomicInteger count = new AtomicInteger(0);
    AtomicInteger lastVal = new AtomicInteger(-1);
    while (actcount < max) {
        long tim = System.currentTimeMillis();
        for (int i = 0; i < toEncode.size(); i++) {
            HashMap<Object, Object> toEnc = (HashMap<Object, Object>) toEncode.get(i);
            oc.ordered(act -> {
                return act.decode(toEnc);
            }).then((r, e) -> {
                count.incrementAndGet();
                if (verify) {
                    HashMap o = (HashMap) FSTConfiguration.getDefaultConfiguration().asObject((byte[]) r);
                    Integer value = (Integer) ((Object[]) o.get("VALUE"))[0];
                    if (lastVal.get() != value.intValue() - 1)
                        System.out.println("ERROR " + value + " " + lastVal);
                    lastVal.set(value.intValue());
                }
            });
        }
        while (count.get() < 1000000) {
            LockSupport.parkNanos(1000 * 1000);
        }
        System.out.println("time Actor: " + (System.currentTimeMillis() - tim) + " " + count.get());
        count.set(0);
        actcount++;
    }
    oc.each((act) -> act.stop());
}
Also used : LockSupport(java.util.concurrent.locks.LockSupport) IPromise(org.nustaq.kontraktor.IPromise) Hoarde(org.nustaq.kontraktor.util.Hoarde) AtomicInteger(java.util.concurrent.atomic.AtomicInteger) Actor(org.nustaq.kontraktor.Actor) FSTConfiguration(org.nustaq.serialization.FSTConfiguration) Test(org.junit.Test) Promise(org.nustaq.kontraktor.Promise) HashMap(java.util.HashMap) Serializable(java.io.Serializable) ArrayList(java.util.ArrayList) AtomicInteger(java.util.concurrent.atomic.AtomicInteger) AtomicInteger(java.util.concurrent.atomic.AtomicInteger) HashMap(java.util.HashMap) Hoarde(org.nustaq.kontraktor.util.Hoarde)

Aggregations

Serializable (java.io.Serializable)1 ArrayList (java.util.ArrayList)1 HashMap (java.util.HashMap)1 AtomicInteger (java.util.concurrent.atomic.AtomicInteger)1 LockSupport (java.util.concurrent.locks.LockSupport)1 Test (org.junit.Test)1 Actor (org.nustaq.kontraktor.Actor)1 IPromise (org.nustaq.kontraktor.IPromise)1 Promise (org.nustaq.kontraktor.Promise)1 Hoarde (org.nustaq.kontraktor.util.Hoarde)1 FSTConfiguration (org.nustaq.serialization.FSTConfiguration)1