Created
November 3, 2016 19:42
-
-
Save srdanrasic/09327d29d9d4845293d56e27e2b1cef6 to your computer and use it in GitHub Desktop.
This file contains hidden or 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 XCTest | |
| import ReactiveKit | |
| import ReactiveSwift | |
| import RxSwift | |
| let iterations = 1000 | |
| let elements = 100 | |
| class BenchmarkTests: XCTestCase { | |
| // Average result: 0.019 ms | |
| func testReactiveKit() { | |
| self.measure { | |
| for _ in 0..<iterations { | |
| let signal = ReactiveKit.Signal<Int, NoError> { observer in | |
| for j in 0..<elements { | |
| observer.next(j) | |
| } | |
| observer.completed() | |
| return NonDisposable.instance | |
| } | |
| _ = signal.observe { _ in } | |
| } | |
| } | |
| } | |
| // Average result: 0.155 ms | |
| func testReactiveSwift() { | |
| self.measure { | |
| for _ in 0..<iterations { | |
| let signal = ReactiveSwift.SignalProducer<Int, NoError> { observer, _ in | |
| for j in 0..<elements { | |
| observer.send(value: j) | |
| } | |
| observer.sendCompleted() | |
| } | |
| _ = signal.start { _ in } | |
| } | |
| } | |
| } | |
| // Average result: 0.097 ms | |
| func testReactiveSwift2() { | |
| self.measure { | |
| for _ in 0..<iterations { | |
| let signal = ReactiveSwift.Signal<Int, NoError> { observer in | |
| for j in 0..<elements { | |
| observer.send(value: j) | |
| } | |
| observer.sendCompleted() | |
| return nil | |
| } | |
| _ = signal.observe { _ in } | |
| } | |
| } | |
| } | |
| // Average result: 0.026 ms | |
| func testRxSwift() { | |
| self.measure { | |
| for _ in 0..<iterations { | |
| let signal = RxSwift.Observable<Int>.create { observer in | |
| for j in 0..<elements { | |
| observer.onNext(j) | |
| } | |
| observer.onCompleted() | |
| return RxSwift.Disposables.create() | |
| } | |
| _ = signal.subscribe { _ in } | |
| } | |
| } | |
| } | |
| } |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment