Skip to content

Commit 484c585

Browse files
committed
improve benchmark scripts
1 parent 0904fce commit 484c585

File tree

2 files changed

+80
-21
lines changed

2 files changed

+80
-21
lines changed

benchmark/bechmark-collections.php

+54
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,54 @@
1+
<?php
2+
3+
use Blackfire\Client;
4+
use Blackfire\Profile\Configuration;
5+
use Faker\Factory as Faker;
6+
use PTS\DataTransformer\DataTransformer;
7+
8+
require_once __DIR__ .'/../vendor/autoload.php';
9+
require_once 'UserModel.php';
10+
$faker = Faker::create();
11+
12+
$iterations = $argv[1] ?? 1000;
13+
$blackfire = $argv[2] ?? false;
14+
$iterations++;
15+
16+
$service = new DataTransformer;
17+
$service->getMapsManager()->setMapDir(UserModel::class, __DIR__);
18+
19+
$collectionDto = [];
20+
while ($iterations--) {
21+
$collectionDto[] = [
22+
'id' => $faker->randomDigit,
23+
'creAt' => $faker->unixTime(),
24+
'name' => $faker->name,
25+
'login' => $faker->name,
26+
'active' => $faker->numberBetween(0, 2),
27+
'email' => $faker->email,
28+
'childModel' => [
29+
'id' => $faker->randomDigit,
30+
'creAt' => time(),
31+
'name' => $faker->unixTime(),
32+
'login' => $faker->name,
33+
'active' => $faker->boolean,
34+
'email' => $faker->email,
35+
]
36+
];
37+
}
38+
39+
if ($blackfire) {
40+
$client = new Client;
41+
$probe = $client->createProbe(new Configuration);
42+
}
43+
$startTime = microtime(true);
44+
45+
$models = $service->toModelsCollection(UserModel::class, $collectionDto);
46+
$collectionDto = $service->toDtoCollection($models);
47+
48+
$diff = (microtime(true) - $startTime) * 1000;
49+
echo sprintf('%2.3f ms', $diff);
50+
echo "\n" . memory_get_peak_usage()/1024;
51+
52+
if ($blackfire) {
53+
$client->endProbe($probe);
54+
}

benchmark/bechmark.php

+26-21
Original file line numberDiff line numberDiff line change
@@ -2,42 +2,47 @@
22

33
use Blackfire\Client;
44
use Blackfire\Profile\Configuration;
5+
use Faker\Factory as Faker;
56
use PTS\DataTransformer\DataTransformer;
67

78
require_once __DIR__ .'/../vendor/autoload.php';
89
require_once 'UserModel.php';
10+
$faker = Faker::create();
911

1012
$iterations = $argv[1] ?? 1000;
1113
$blackfire = $argv[2] ?? false;
1214
$iterations++;
1315

16+
$service = new DataTransformer;
17+
$service->getMapsManager()->setMapDir(UserModel::class, __DIR__);
18+
19+
$collectionDto = [];
20+
while ($iterations--) {
21+
$collectionDto[] = [
22+
'id' => $faker->randomDigit,
23+
'creAt' => $faker->unixTime(),
24+
'name' => $faker->name,
25+
'login' => $faker->name,
26+
'active' => $faker->numberBetween(0, 2),
27+
'email' => $faker->email,
28+
'childModel' => [
29+
'id' => $faker->randomDigit,
30+
'creAt' => time(),
31+
'name' => $faker->unixTime(),
32+
'login' => $faker->name,
33+
'active' => $faker->boolean,
34+
'email' => $faker->email,
35+
]
36+
];
37+
}
38+
1439
if ($blackfire) {
1540
$client = new Client;
1641
$probe = $client->createProbe(new Configuration);
1742
}
18-
1943
$startTime = microtime(true);
20-
$service = new DataTransformer;
21-
$service->getMapsManager()->setMapDir(UserModel::class, __DIR__);
2244

23-
$dto = [
24-
'id' => 1,
25-
'creAt' => time(),
26-
'name' => 'Alex',
27-
'login' => 'login',
28-
'active' => 1,
29-
'email' => '[email protected]',
30-
'childModel' => [
31-
'id' => 2,
32-
'creAt' => time(),
33-
'name' => 'Alex2',
34-
'login' => 'login2',
35-
'active' => false,
36-
'email' => '[email protected]',
37-
]
38-
];
39-
40-
while ($iterations--) {
45+
foreach ($collectionDto as $dto) {
4146
$model = $service->toModel(UserModel::class, $dto);
4247
$dto = $service->toDTO($model);
4348
}

0 commit comments

Comments
 (0)