-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathindex.php
More file actions
126 lines (105 loc) · 2.66 KB
/
index.php
File metadata and controls
126 lines (105 loc) · 2.66 KB
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
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
<?php
$includePath = get_include_path();
$basePath = dirname(__FILE__) . DIRECTORY_SEPARATOR;
$includePathDirectories = array(
$basePath . 'lib',
$basePath . 'tests',
);
set_include_path(get_include_path() . ':' . implode(':', $includePathDirectories));
include_once $basePath . 'lib' . DIRECTORY_SEPARATOR . 'Autoloader.php';
$autoLoader = new Autoloader($basePath);
spl_autoload_register(array($autoLoader, 'loadFileByClassName'));
Registry::set(Registry::BASE_PATH, $basePath);
$benchmark = new Benchmark_Manager();
$tests = $benchmark->getList();
$isPostMode = isset($_POST);
$result = array();
if (true === $isPostMode) {
if (!empty($_POST['tests']) && count($_POST['tests'])) {
foreach (array_keys($_POST['tests']) as $testFile) {
$result[] = $benchmark->test($testFile);
}
}
}
$testsHtml = '
<table>
<tr class="headTr">
<td> </td>
<td>Short-Description</td>
<td>Long-Description</td>
</tr>
';
$i = 0;
foreach ($tests as $file => $data) {
$i++;
$checked = false;
if ($isPostMode && !empty($_POST['tests'][$file])) {
$checked = ' checked="checked" ';
}
$testsHtml .= '
<tr>
<td><input id="ck_'.$i.'" type="checkbox" name="tests['.$file.']" '.$checked.'/></td>
<td><label for="ck_'.$i.'">'.$data['short'].'</label></td>
<td><label for="ck_'.$i.'">'.$data['long'].'</label></td>
</tr>
';
}
$htmlResult = '';
if (count($result)) {
$htmlResult = '<h2>Measurement results</h2>';
$htmlResult .= '<table>';
$firstLoopPassed = false;
foreach ($result as $key => $testWhile) {
if (true === $firstLoopPassed) {
$htmlResult .= '<tr class="space"><td colspan="4"> </td></tr>';
}
if (false === $firstLoopPassed) {
$firstLoopPassed = true;
}
$htmlResult .= '
<tr>
<th colspan="4" class="textLeft">
'.$testWhile['meta']['short'].' - '.$testWhile['meta']['long'].'
</th>
</tr>
<tr class="headTr">
<td>
Code
</td>
<td>
Method
</td>
<td>
Execution time with '.number_format($testWhile['meta']['loops'], 0, ',', '.').' loops
</td>
<td>
Slower
</td>
</tr>
';
foreach ($testWhile['tests'] as $item) {
$htmlResult .= '
<tr '.($item['winner'] ? 'class="win"' : '').' '.($item['loser'] ? 'class="loser"' : '').'>
<td>
'.($item['code']).'
</td>
<td>
'.($item['method']).'
</td>
<td>
'.($item['duration']).' ms
</td>
<td>
'.($item['slow']).'%
</td>
</tr>
';
}
}
$htmlResult .= '</table>';
}
$testsHtml .= '</table>';
$template = new MiniTemplate();
$template->assign('tests', $testsHtml);
$template->assign('testsMeasure', $htmlResult);
echo $template->fetch('xhtml.tpl');