-
Notifications
You must be signed in to change notification settings - Fork 17
/
benchmark.php
42 lines (33 loc) · 1.19 KB
/
benchmark.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
<?php
use wapmorgan\MediaFile\Exceptions\FileAccessException;
use wapmorgan\MediaFile\MediaFile;
require __DIR__.'/vendor/autoload.php';
define('REPEATITIONS', 100);
$files = glob(__DIR__.'/fixtures/{video,audio}/*', GLOB_BRACE);
class_exists('getID3');
$id3 = new getID3;
class_exists('wapmorgan\MediaFile\MediaFile');
$times = array(
'mediafile' => array(),
'getid3' => array(),
);
echo 'Repeatitions: '.REPEATITIONS.PHP_EOL;
echo sprintf('%20s | %10s | %10s | %10s', 'File', 'getID3', 'MediaFile', 'Speed gain').PHP_EOL;
foreach ($files as $file) {
$start = microtime(true);
try {
for ($i = 0; $i < REPEATITIONS; $i++) {
$info = MediaFile::open($file);
}
$times['mediafile'][$file] = microtime(true) - $start;
} catch (FileAccessException $e) {
continue;
}
$start = microtime(true);
for ($i = 0; $i < REPEATITIONS; $i++) {
$info = $id3->analyze($file);
}
$times['getid3'][$file] = microtime(true) - $start;
echo sprintf('%20s | %10.3f | %10.3f | %5.2fx', basename($file), $times['getid3'][$file], $times['mediafile'][$file], $times['getid3'][$file] / $times['mediafile'][$file]).PHP_EOL;
}
// var_dump($times);