Skip to content
Closed
10 changes: 10 additions & 0 deletions benchmark/bufferWithCount/bufferWithCount.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
<?php

use Rx\Observable;

$source = Observable::range(0, 25)
->bufferWithCount(5);

return function() use ($source) {
return $source;
};
17 changes: 17 additions & 0 deletions benchmark/bufferWithCount/bufferWithCount_eventloop.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
<?php

use Rx\Observable;
use Rx\Scheduler\EventLoopScheduler;
use React\EventLoop\StreamSelectLoop;

$loop = new StreamSelectLoop();
$scheduler = new EventLoopScheduler($loop);

$source = Observable::just(25)
->delay(0, $scheduler);

$factory = function() use ($source, $scheduler) {
return $source;
};

return [$factory, $loop];
12 changes: 12 additions & 0 deletions benchmark/catch/catch.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
<?php

use Rx\Observable;

$source = Observable::error(new \Exception('error'))
->catchError(function() {
return Observable::just(25);
});

return function() use ($source) {
return $source;
};
12 changes: 12 additions & 0 deletions benchmark/combineLatest/combineLatest.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
<?php

use Rx\Observable;

$source = Observable::range(0, 25)
->combineLatest([Observable::range(0, 25)], function($a, $b) {
return $a + $b;
});

return function() use ($source) {
return $source;
};
19 changes: 19 additions & 0 deletions benchmark/combineLatest/combineLatest_eventloop.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
<?php

use Rx\Observable;
use Rx\Scheduler\EventLoopScheduler;
use React\EventLoop\StreamSelectLoop;

$loop = new StreamSelectLoop();
$scheduler = new EventLoopScheduler($loop);

$source = Observable::range(0, 25, $scheduler)
->combineLatest([Observable::range(0, 25, $scheduler)], function($a, $b) {
return $a + $b;
});

$factory = function() use ($source) {
return $source;
};

return [$factory, $loop];
10 changes: 10 additions & 0 deletions benchmark/concat/concat.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
<?php

use Rx\Observable;

$source = Observable::range(0, 25)
->concat(Observable::range(0, 25));

return function() use ($source) {
return $source;
};
17 changes: 17 additions & 0 deletions benchmark/concat/concat_eventloop.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
<?php

use Rx\Observable;
use Rx\Scheduler\EventLoopScheduler;
use React\EventLoop\StreamSelectLoop;

$loop = new StreamSelectLoop();
$scheduler = new EventLoopScheduler($loop);

$source = Observable::range(0, 25, $scheduler)
->concat(Observable::range(0, 25, $scheduler));

$factory = function() use ($source) {
return $source;
};

return [$factory, $loop];
13 changes: 13 additions & 0 deletions benchmark/concatAll/concatAll.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
<?php

use Rx\Observable;

$source = Observable::range(0, 25)
->map(function() {
return Observable::range(0, 25);
})
->concatAll();

return function() use ($source) {
return $source;
};
20 changes: 20 additions & 0 deletions benchmark/concatAll/concatAll_eventloop.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
<?php

use Rx\Observable;
use Rx\Scheduler\EventLoopScheduler;
use React\EventLoop\StreamSelectLoop;

$loop = new StreamSelectLoop();
$scheduler = new EventLoopScheduler($loop);

$source = Observable::range(0, 25, $scheduler)
->map(function() use ($scheduler) {
return Observable::range(0, 25, $scheduler);
})
->concatAll();

$factory = function() use ($source) {
return $source;
};

return [$factory, $loop];
12 changes: 12 additions & 0 deletions benchmark/concatMap/concatMap.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
<?php

use Rx\Observable;

$source = Observable::range(1, 25)
->concatMap(function($x) {
return Observable::range($x, 25);
});

return function() use ($source) {
return $source;
};
19 changes: 19 additions & 0 deletions benchmark/concatMap/concatMap_eventloop.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
<?php

use Rx\Observable;
use Rx\Scheduler\EventLoopScheduler;
use React\EventLoop\StreamSelectLoop;

$loop = new StreamSelectLoop();
$scheduler = new EventLoopScheduler($loop);

$source = Observable::range(1, 25, $scheduler)
->concatMap(function($x) use ($scheduler) {
return Observable::range($x, 25, $scheduler);
});

$factory = function() use ($source) {
return $source;
};

return [$factory, $loop];
10 changes: 10 additions & 0 deletions benchmark/defaultIfEmpty/defaultIfEmpty.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
<?php

use Rx\Observable;

$source = Observable::emptyObservable()
->defaultIfEmpty(Observable::just(25));

return function() use ($source) {
return $source;
};
11 changes: 11 additions & 0 deletions benchmark/delay/delay.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
<?php

use Rx\Observable;
use Rx\Scheduler\ImmediateScheduler;

$source = Observable::just(25)
->delay(0, new ImmediateScheduler());

return function() use ($source) {
return $source;
};
17 changes: 17 additions & 0 deletions benchmark/delay/delay_eventloop.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
<?php

use Rx\Observable;
use Rx\Scheduler\EventLoopScheduler;
use React\EventLoop\StreamSelectLoop;

$loop = new StreamSelectLoop();
$scheduler = new EventLoopScheduler($loop);

$source = Observable::just(25)
->delay(0, $scheduler);

$factory = function() use ($source) {
return $source;
};

return [$factory, $loop];
13 changes: 13 additions & 0 deletions benchmark/distinct/distinct.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
<?php

use Rx\Observable;

$source = Observable::range(0, 25)
->map(function($i) {
return $i % 3;
})
->distinct();

return function() use ($source) {
return $source;
};
21 changes: 21 additions & 0 deletions benchmark/distinct/distinct_eventloop.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
<?php

use Rx\Observable;
use Rx\Observable\ArrayObservable;
use Rx\Scheduler\EventLoopScheduler;
use React\EventLoop\StreamSelectLoop;

$loop = new StreamSelectLoop();
$scheduler = new EventLoopScheduler($loop);

$source = Observable::range(0, 25, $scheduler)
->map(function($i) {
return $i % 3;
})
->distinct();

$factory = function() use ($source) {
return $source;
};

return [$factory, $loop];
15 changes: 15 additions & 0 deletions benchmark/filter/filter.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
<?php

use Rx\Observable;

$source = Observable::range(0, 50)
->filter(function($value) {
return $value % 2 == 0;
})
->filter(function($value) {
return $value % 10 == 0;
});

return function() use ($source) {
return $source;
};
22 changes: 22 additions & 0 deletions benchmark/filter/filter_eventloop.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
<?php

use Rx\Observable;
use Rx\Scheduler\EventLoopScheduler;
use React\EventLoop\StreamSelectLoop;

$loop = new StreamSelectLoop();
$scheduler = new EventLoopScheduler($loop);

$source = Observable::range(0, 50, $scheduler)
->filter(function($value) {
return $value % 2 == 0;
})
->filter(function($value) {
return $value % 10 == 0;
});

$factory = function() use ($source) {
return $source;
};

return [$factory, $loop];
12 changes: 12 additions & 0 deletions benchmark/flatMap/flatMap.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
<?php

use Rx\Observable;

$source = Observable::range(0, 25)
->flatMap(function($x) {
return Observable::range($x, 25);
});

return function() use ($source) {
return $source;
};
19 changes: 19 additions & 0 deletions benchmark/flatMap/flatMap_eventloop.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
<?php

use Rx\Observable;
use Rx\Scheduler\EventLoopScheduler;
use React\EventLoop\StreamSelectLoop;

$loop = new StreamSelectLoop();
$scheduler = new EventLoopScheduler($loop);

$source = Observable::range(0, 25, $scheduler)
->flatMap(function($x) use ($scheduler) {
return Observable::range($x, 25, $scheduler);
});

$factory = function() use ($source) {
return $source;
};

return [$factory, $loop];
15 changes: 15 additions & 0 deletions benchmark/forkJoin/forkJoin.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
<?php

use Rx\Observable;

$source = Observable::defer(function() {
return Observable::forkJoin([
Observable::just(25),
Observable::range(0, 25),
Observable::fromArray(([1, 2, 3, 4, 5]))
]);
});

return function() use ($source) {
return $source;
};
15 changes: 15 additions & 0 deletions benchmark/groupBy/groupBy.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
<?php

use Rx\Observable;

$source = Observable::range(0, 25)
->map(function($i) {
return ['key' => $i % 5];
})
->groupBy(function($item) {
return $item['key'];
});

return function() use ($source) {
return $source;
};
22 changes: 22 additions & 0 deletions benchmark/groupBy/groupBy_eventloop.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
<?php

use Rx\Observable;
use Rx\Scheduler\EventLoopScheduler;
use React\EventLoop\StreamSelectLoop;

$loop = new StreamSelectLoop();
$scheduler = new EventLoopScheduler($loop);

$source = Observable::range(0, 25, $scheduler)
->map(function($i) {
return ['key' => $i % 5];
})
->groupBy(function($item) {
return $item['key'];
});

$factory = function() use ($source) {
return $source;
};

return [$factory, $loop];
10 changes: 10 additions & 0 deletions benchmark/isEmpty/isEmpty.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
<?php

use Rx\Observable;

$source = Observable::just(25)
->isEmpty();

return function() use ($source) {
return $source;
};
Loading