forked from rusoft/php-simple-benchmark-script
-
Notifications
You must be signed in to change notification settings - Fork 0
/
php5.inc
149 lines (123 loc) · 2.87 KB
/
php5.inc
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
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
<?php
/**
* Special test only for php 5+
* php 4.x can't compile try construction.
*/
/* ------------------------ Additional data ------------------------ */
class PublicProperties
{
public $number = 0;
}
class GetterSetter
{
private $number = 0;
public function getNumber()
{
return $this->number;
}
public function setNumber($new)
{
$this->number = $new;
return $this;
}
}
class MagicMethods
{
private $number = 0;
public function __get($name)
{
if ($name === 'number') {
return $this->number;
}
return null;
}
public function __set($name, $new)
{
if ($name === 'number') {
$this->number = $new;
}
}
}
/* ------------------------ Tests ------------------------ */
function test_21_0_Loop_Exception_None()
{
global $testsLoopLimits, $totalOps;
$count = $testsLoopLimits['21_loop_except'];
$time_start = get_microtime();
for ($i = 0; $i < $count; $i++) {
$a = $i;
}
$totalOps += $count;
return format_result_test(get_microtime() - $time_start, $count, mymemory_usage());
}
function test_21_1_Loop_Exception_Try()
{
global $testsLoopLimits, $totalOps;
$count = $testsLoopLimits['21_loop_except'];
$time_start = get_microtime();
for ($i = 0; $i < $count; $i++) {
try {
$a = $i;
} catch (Exception $e) {
}
}
$totalOps += $count;
return format_result_test(get_microtime() - $time_start, $count, mymemory_usage());
}
function test_21_2_Loop_Exception_Catch()
{
global $testsLoopLimits, $totalOps;
$count = $testsLoopLimits['21_loop_except'];
$time_start = get_microtime();
for ($i = 0; $i < $count; $i++) {
try {
$a = $i;
throw new Exception($i);
} catch (Exception $e) {
}
}
$totalOps += $count;
return format_result_test(get_microtime() - $time_start, $count, mymemory_usage());
}
function test_26_1_Class_Public_Properties()
{
global $testsLoopLimits, $totalOps;
$c = new PublicProperties();
$r = 0;
$count = $testsLoopLimits['26_1_public'];
$time_start = get_microtime();
for ($i = 0; $i < $count; $i++) {
$r = $c->number;
$c->number = $r + $i;
}
$totalOps += $count;
return format_result_test(get_microtime() - $time_start, $count, mymemory_usage());
}
function test_26_2_Class_Getter_Setter()
{
global $testsLoopLimits, $totalOps;
$c = new GetterSetter();
$r = 0;
$count = $testsLoopLimits['26_2_getset'];
$time_start = get_microtime();
for ($i = 0; $i < $count; $i++) {
$r = $c->getNumber();
$c->setNumber($r + $i);
}
$totalOps += $count;
return format_result_test(get_microtime() - $time_start, $count, mymemory_usage());
}
function test_26_3_Class_Magic_Methods()
{
global $testsLoopLimits, $totalOps;
$c = new MagicMethods();
$r = 0;
$count = $testsLoopLimits['26_3_magic'];
$time_start = get_microtime();
for ($i = 0; $i < $count; $i++) {
$r = $c->number;
$c->number = $r + $i;
}
$totalOps += $count;
return format_result_test(get_microtime() - $time_start, $count, mymemory_usage());
}