This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
package experiment; | |
import java.lang.reflect.Field; | |
import java.util.concurrent.*; | |
import rx.internal.util.unsafe.UnsafeAccess; | |
public class LongFieldTearing { | |
public static long field = 1; | |
public static volatile long release; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import java.util.*; | |
import rx.Observable; | |
import rx.observers.TestSubscriber; | |
import rx.schedulers.Schedulers; | |
public class MergeStarving { | |
public static void main(String[] args) { |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import java.util.*; | |
import org.junit.*; | |
import rx.Observable; | |
import rx.functions.Func1; | |
import rx.observers.TestSubscriber; | |
import rx.plugins.*; | |
import rx.schedulers.Schedulers; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
package org.jctools.queues; | |
import java.util.concurrent.atomic.AtomicBoolean; | |
import org.junit.Test; | |
public class SpmcHappensBefore { | |
static final class Val { | |
public int value; | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#region + GroupJoin + | |
[TestMethod] | |
public void GroupJoinOp_ArgumentChecking() | |
{ | |
ReactiveAssert.Throws<ArgumentNullException>(() => Observable.GroupJoin(null, DummyObservable<int>.Instance, DummyFunc<int, IObservable<int>>.Instance, DummyFunc<int, IObservable<int>>.Instance, DummyFunc<int, IObservable<int>, int>.Instance)); | |
ReactiveAssert.Throws<ArgumentNullException>(() => Observable.GroupJoin(DummyObservable<int>.Instance, null, DummyFunc<int, IObservable<int>>.Instance, DummyFunc<int, IObservable<int>>.Instance, DummyFunc<int, IObservable<int>, int>.Instance)); | |
ReactiveAssert.Throws<ArgumentNullException>(() => Observable.GroupJoin(DummyObservable<int>.Instance, DummyObservable<int>.Instance, default(Func<int, IObservable<int>>), DummyFunc<int, IObservable<int>>.Instance, DummyFunc<int, IObservable<int>, int>.Instance)); | |
ReactiveAssert.Throws<ArgumentNullException>(() => Observable.GroupJoin(DummyObservable<int>.Instance, DummyObservab |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
package rx.internal; | |
import java.util.Deque; | |
import java.util.concurrent.*; | |
import org.openjdk.jmh.annotations.*; | |
import org.openjdk.jmh.infra.Control; | |
import rx.internal.util.ArrayBasedLockFreeStack; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Benchmark (count) (loop) Mode Samples Score Score error Units | |
r.s.CompositeSubscriptionConcurrentPerf.g1 1 1 thrpt 10 3981687,656 274589,435 ops/s | |
r.s.CompositeSubscriptionConcurrentPerf.g1:addRemoveT1 1 1 thrpt 10 2045599,279 611205,142 ops/s | |
r.s.CompositeSubscriptionConcurrentPerf.g1:addRemoveT2 1 1 thrpt 10 1936088,377 500330,966 ops/s | |
r.s.CompositeSubscriptionConcurrentPerf.g1 1 1000 thrpt 10 4947,723 186,710 ops/s | |
r.s.CompositeSubscriptionConcurrentPerf.g1:addRemoveT1 1 1000 thrpt 10 2381,788 291,468 ops/s | |
r.s.CompositeSubscriptionConcurrentPerf.g1:addRemoveT2 1 1000 thrpt 10 2565,935 188,117 ops/s | |
r.s.CompositeSubscriptionConcurrentPerf.g1 1 100000 thrpt 10 48,234 1,157 ops/s |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
-- 1.x -- | |
Benchmark (size) Mode Samples Score Score error Units | |
r.s.ComputationSchedulerPerf.observeOn 1 thrpt 5 181353,987 45181,671 ops/s | |
r.s.ComputationSchedulerPerf.observeOn 10 thrpt 5 168981,589 21477,707 ops/s | |
r.s.ComputationSchedulerPerf.observeOn 100 thrpt 5 29722,079 2638,061 ops/s | |
r.s.ComputationSchedulerPerf.observeOn 1000 thrpt 5 6990,191 2540,577 ops/s | |
r.s.ComputationSchedulerPerf.observeOn 2000 thrpt 5 3882,770 1721,311 ops/s | |
r.s.ComputationSchedulerPerf.observeOn 3000 thrpt 5 2416,756 1984,065 ops/s | |
r.s.ComputationSchedulerPerf.observeOn 4000 thrpt 5 1952,835 890,895 ops/s | |
r.s.ComputationSchedulerPerf.observeOn 10000 thrpt 5 880,152 418,095 ops/s |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
atomicIntCASCheckFailure 1000000 372,517 13,007 | |
atomicIntCASCheckSuccess 1000000 86,288 2,916 | |
atomicIntCASFailure 1000000 145,753 2,686 | |
atomicIntCASSuccess 1000000 138,676 2,785 | |
atomicIntFieldCASFailure 1000000 124,550 1,325 | |
atomicIntFieldCASSuccess 1000000 119,063 1,178 | |
atomicIntFieldGetAndIncrement 1000000 130,576 4,031 | |
atomicIntFieldIncrementAndGet 1000000 121,219 17,265 | |
atomicIntFieldLazySet 1000000 291,625 5,435 | |
atomicIntGetAndIncrement 1000000 154,072 3,733 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
r.i.AtomicPerf.atomicIntCASCheckFailure 1000000 691,645 28,174 | |
r.i.AtomicPerf.atomicIntCASCheckSuccess 1000000 114,410 3,540 | |
r.i.AtomicPerf.atomicIntCASFailure 1000000 190,065 20,903 | |
r.i.AtomicPerf.atomicIntCASSuccess 1000000 140,607 11,611 | |
r.i.AtomicPerf.atomicIntFieldCASFailure 1000000 138,794 8,404 | |
r.i.AtomicPerf.atomicIntFieldCASSuccess 1000000 140,099 6,383 | |
r.i.AtomicPerf.atomicIntFieldGetAndIncrement 1000000 139,517 6,104 | |
r.i.AtomicPerf.atomicIntFieldIncrementAndGet 1000000 137,063 10,310 | |
r.i.AtomicPerf.atomicIntFieldLazySet 1000000 455,459 26,511 | |
r.i.AtomicPerf.atomicIntGetAndIncrement 1000000 191,009 10,481 |