I am trying to extend the zend partial helper to make it a little faster for my own needs. The code of how I do that is not important at this point.
I have created a unit test which acts weird and I can not understand the reason for it
this is the code:
$garpTimeStart = microtime(true);
for ($i = 0; $i < 999; $i++) {
$this->_createOneGarpView();
}
$garpTimeTotal = microtime(true) - $garpTimeStart;
$zendTimeStart = microtime(true);
for ($i = 0; $i < 999; $i++) {
$this->_createOneZendView();
}
$zendTimeTotal = microtime(true) - $zendTimeStart;
$deltaPerformance = $zendTimeTotal - $garpTimeTotal;
$this->assertTrue($deltaPerformance > 0);
ok, basically I create 1000 zendView objects and 1000 of my own garpView objects and I track the time for creating each of these.
Here comes the tricky part:
Simply by switching the order of the creation of the zend and garp views the test will fail. So, in other words, whichever I create first, will be created faster! (still, with a obvious difference in performance between the two)
So this in about 4 out of 5 times will fail
$zendTimeStart = microtime(true);
for ($i = 0; $i < 999; $i++) {
$this->_createOneZendView();
}
$zendTimeTotal = microtime(true) - $zendTimeStart;
$garpTimeStart = microtime(true);
for ($i = 0; $i < 999; $i++) {
$this->_createOneGarpView();
}
$garpTimeTotal = microtime(true) - $garpTimeStart;
$deltaPerformance = $zendTimeTotal - $garpTimeTotal;
$this->assertTrue($deltaPerformance > 0);
What am I missing? how can I create a more suitable environment to test this in?