Skip to content
This repository was archived by the owner on Jan 29, 2020. It is now read-only.

Commit 969821a

Browse files
authored
Merge pull request #62 from webimpress/feature/phpbench
Switching to phpbench/phpbench based benchmarks
2 parents 071016a + 543e450 commit 969821a

14 files changed

+101
-44
lines changed

.gitattributes

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,5 +8,6 @@
88
.travis.yml export-ignore
99
Makefile export-ignore
1010
mkdocs.yml export-ignore
11+
phpbench.json export-ignore
1112
phpunit.xml.dist export-ignore
1213
phpcs.xml export-ignore

.travis.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@ matrix:
3232
- PATH="$HOME/.local/bin:$PATH"
3333
- php: 7
3434
env:
35+
- BENCHMARKS=true
3536
- CS_CHECK=true
3637
- php: 7.1
3738

@@ -50,6 +51,7 @@ install:
5051

5152
script:
5253
- if [[ $TEST_COVERAGE == 'true' ]]; then composer test-coverage ; else composer test ; fi
54+
- if [[ $BENCHMARKS == 'true' ]]; then vendor/bin/phpbench run --revs=2 --iterations=2 --report=aggregate ; fi
5355
- if [[ $CS_CHECK == 'true' ]]; then composer cs-check ; fi
5456
- if [[ $DEPLOY_DOCS == "true" && "$TRAVIS_TEST_RESULT" == "0" ]]; then wget -O theme-installer.sh "https://raw.githubusercontent.com/zendframework/zf-mkdoc-theme/master/theme-installer.sh" ; chmod 755 theme-installer.sh ; ./theme-installer.sh ; fi
5557

README.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,11 +22,11 @@ documentation](https://zendframework.github.io/zend-eventmanager/migration/intro
2222
## Benchmarks
2323

2424
We provide scripts for benchmarking zend-eventmanager using the
25-
[Athletic](https://github.com/polyfractal/athletic) framework; these can be
25+
[PHPBench](https://github.com/phpbench/phpbench) framework; these can be
2626
found in the `benchmarks/` directory.
2727

2828
To execute the benchmarks you can run the following command:
2929

3030
```bash
31-
$ vendor/bin/athletic -p benchmarks
31+
$ vendor/bin/phpbench run --report=aggregate
3232
```

benchmarks/TraitEventBench.php renamed to benchmarks/BenchTrait.php

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,8 @@
11
<?php
2+
23
namespace ZendBench\EventManager;
34

4-
trait TraitEventBench
5+
trait BenchTrait
56
{
67
private $numListeners = 50;
78

benchmarks/MultipleEventIndividualSharedListener.php renamed to benchmarks/MultipleEventIndividualSharedListenerBench.php

Lines changed: 11 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2,13 +2,18 @@
22

33
namespace ZendBench\EventManager;
44

5+
use PhpBench\Benchmark\Metadata\Annotations\BeforeMethods;
6+
use PhpBench\Benchmark\Metadata\Annotations\Iterations;
7+
use PhpBench\Benchmark\Metadata\Annotations\Revs;
58
use Zend\EventManager\SharedEventManager;
69
use Zend\EventManager\EventManager;
7-
use Athletic\AthleticEvent;
810

9-
class MultipleEventIndividualSharedListener extends AthleticEvent
11+
/**
12+
* @BeforeMethods({"setUp"})
13+
*/
14+
class MultipleEventIndividualSharedListenerBench
1015
{
11-
use TraitEventBench;
16+
use BenchTrait;
1217

1318
private $sharedEvents;
1419

@@ -33,9 +38,10 @@ public function setUp()
3338
/**
3439
* Trigger the event list
3540
*
36-
* @iterations 5000
41+
* @Revs(1000)
42+
* @Iterations(20)
3743
*/
38-
public function trigger()
44+
public function benchTrigger()
3945
{
4046
foreach ($this->eventsToTrigger as $event) {
4147
$this->events->trigger($event);

benchmarks/MultipleEventLocalListener.php renamed to benchmarks/MultipleEventLocalListenerBench.php

Lines changed: 11 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2,12 +2,17 @@
22

33
namespace ZendBench\EventManager;
44

5+
use PhpBench\Benchmark\Metadata\Annotations\BeforeMethods;
6+
use PhpBench\Benchmark\Metadata\Annotations\Iterations;
7+
use PhpBench\Benchmark\Metadata\Annotations\Revs;
58
use Zend\EventManager\EventManager;
6-
use Athletic\AthleticEvent;
79

8-
class MultipleEventLocalListener extends AthleticEvent
10+
/**
11+
* @BeforeMethods({"setUp"})
12+
*/
13+
class MultipleEventLocalListenerBench
914
{
10-
use TraitEventBench;
15+
use BenchTrait;
1116

1217
private $eventsToTrigger;
1318

@@ -23,9 +28,10 @@ public function setUp()
2328
/**
2429
* Attach and trigger the event list
2530
*
26-
* @iterations 5000
31+
* @Revs(1000)
32+
* @Iterations(20)
2733
*/
28-
public function trigger()
34+
public function benchTrigger()
2935
{
3036
foreach ($this->eventsToTrigger as $event) {
3137
$this->events->attach($event, $this->generateCallback());

benchmarks/MultipleEventMultipleLocalAndSharedListener.php renamed to benchmarks/MultipleEventMultipleLocalAndSharedListenerBench.php

Lines changed: 11 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2,13 +2,18 @@
22

33
namespace ZendBench\EventManager;
44

5+
use PhpBench\Benchmark\Metadata\Annotations\BeforeMethods;
6+
use PhpBench\Benchmark\Metadata\Annotations\Iterations;
7+
use PhpBench\Benchmark\Metadata\Annotations\Revs;
58
use Zend\EventManager\SharedEventManager;
69
use Zend\EventManager\EventManager;
7-
use Athletic\AthleticEvent;
810

9-
class MultipleEventMultipleLocalAndSharedListener extends AthleticEvent
11+
/**
12+
* @BeforeMethods({"setUp"})
13+
*/
14+
class MultipleEventMultipleLocalAndSharedListenerBench
1015
{
11-
use TraitEventBench;
16+
use BenchTrait;
1217

1318
private $sharedEvents;
1419

@@ -35,9 +40,10 @@ public function setUp()
3540
/**
3641
* Attach and trigger the event list
3742
*
38-
* @iterations 5000
43+
* @Revs(1000)
44+
* @Iterations(20)
3945
*/
40-
public function trigger()
46+
public function benchTrigger()
4147
{
4248
foreach ($this->eventsToTrigger as $event) {
4349
for ($i = 0; $i < $this->numListeners; $i += 1) {

benchmarks/MultipleEventMultipleSharedListener.php renamed to benchmarks/MultipleEventMultipleSharedListenerBench.php

Lines changed: 11 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2,13 +2,18 @@
22

33
namespace ZendBench\EventManager;
44

5+
use PhpBench\Benchmark\Metadata\Annotations\BeforeMethods;
6+
use PhpBench\Benchmark\Metadata\Annotations\Iterations;
7+
use PhpBench\Benchmark\Metadata\Annotations\Revs;
58
use Zend\EventManager\SharedEventManager;
69
use Zend\EventManager\EventManager;
7-
use Athletic\AthleticEvent;
810

9-
class MultipleEventMultipleSharedListener extends AthleticEvent
11+
/**
12+
* @BeforeMethods({"setUp"})
13+
*/
14+
class MultipleEventMultipleSharedListenerBench
1015
{
11-
use TraitEventBench;
16+
use BenchTrait;
1217

1318
private $sharedEvents;
1419

@@ -35,9 +40,10 @@ public function setUp()
3540
/**
3641
* Trigger the event list
3742
*
38-
* @iterations 5000
43+
* @Revs(1000)
44+
* @Iterations(20)
3945
*/
40-
public function trigger()
46+
public function benchTrigger()
4147
{
4248
foreach ($this->eventsToTrigger as $event) {
4349
$this->events->trigger($event);

benchmarks/SingleEventMultipleListener.php renamed to benchmarks/SingleEventMultipleListenerBench.php

Lines changed: 11 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2,12 +2,17 @@
22

33
namespace ZendBench\EventManager;
44

5+
use PhpBench\Benchmark\Metadata\Annotations\BeforeMethods;
6+
use PhpBench\Benchmark\Metadata\Annotations\Iterations;
7+
use PhpBench\Benchmark\Metadata\Annotations\Revs;
58
use Zend\EventManager\EventManager;
6-
use Athletic\AthleticEvent;
79

8-
class SingleEventMultipleListener extends AthleticEvent
10+
/**
11+
* @BeforeMethods({"setUp"})
12+
*/
13+
class SingleEventMultipleListenerBench
914
{
10-
use TraitEventBench;
15+
use BenchTrait;
1116

1217
private $events;
1318

@@ -22,9 +27,10 @@ public function setUp()
2227
/**
2328
* Trigger the dispatch event
2429
*
25-
* @iterations 5000
30+
* @Revs(1000)
31+
* @Iterations(20)
2632
*/
27-
public function trigger()
33+
public function benchTrigger()
2834
{
2935
$this->events->trigger('dispatch');
3036
}

benchmarks/SingleEventMultipleSharedListener.php renamed to benchmarks/SingleEventMultipleSharedListenerBench.php

Lines changed: 11 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2,13 +2,18 @@
22

33
namespace ZendBench\EventManager;
44

5+
use PhpBench\Benchmark\Metadata\Annotations\BeforeMethods;
6+
use PhpBench\Benchmark\Metadata\Annotations\Iterations;
7+
use PhpBench\Benchmark\Metadata\Annotations\Revs;
58
use Zend\EventManager\SharedEventManager;
69
use Zend\EventManager\EventManager;
7-
use Athletic\AthleticEvent;
810

9-
class SingleEventMultipleSharedListener extends AthleticEvent
11+
/**
12+
* @BeforeMethods({"setUp"})
13+
*/
14+
class SingleEventMultipleSharedListenerBench
1015
{
11-
use TraitEventBench;
16+
use BenchTrait;
1217

1318
private $sharedEvents;
1419

@@ -27,9 +32,10 @@ public function setUp()
2732
/**
2833
* Trigger the dispatch event
2934
*
30-
* @iterations 5000
35+
* @Revs(1000)
36+
* @Iterations(20)
3137
*/
32-
public function trigger()
38+
public function benchTrigger()
3339
{
3440
$this->events->trigger('dispatch');
3541
}

0 commit comments

Comments
 (0)