Speed testing any functions
It`s util for easy performance testing some functions., (*1)
Install
composer require iiispikeriii/speedy
Use
$speedy = new Speedy();
print $speedy->runTestByName(TestList::PHP_ARR_SORT);
OR, (*2)
print Speedy::test(TestList::PHP_INC_PREF_POST);
if you want to get only result speed testing - use onlyData param its true, (*3)
print Speedy::test(TestList::PHP_INC_PREF_POST, [], true);
OR, (*4)
$params = [
'name' => 'Speedy ++i vs i++',
'volumesTest' => [100, 1000, 2000, 3000],
'repeatTest' => 5,
'viewers' => [ViewerList::VIEWER_TGROUP, ViewerList::VIEWER_TAVG, ViewerList::VIEWER_GBUBLE],
'tester' => 'tester' => TesterList::TESTER_PHP
];
print Speedy::test(TestList::PHP_INC_PREF_POST, $params);
Viewers
-
ViewerList::VIEWER_TLIST - table list result
-
ViewerList::VIEWER_TGROUP - table group result
-
ViewerList::VIEWER_TAVG - table average result
-
ViewerList::VIEWER_GBUBLE - graph with buble result
Tests
-
TestList::PHP_INC_PREF_POST - comparison with pre-increment postincrement (++i and i++)
-
TestList::PHP_ARR_READ - comparison with reading array "while" "for" "foreach"
-
TestList::PHP_ARR_SORT - comparison with sorting arrays Heap, Bubble, Select, Insertion, Quick
-
TestList::PHP_SOF_VS_COUNT - comparison with sizeof() versus count()
Testers
-
TesterList::TESTER_PHP - testing with PHP functions microtime and memory_get_usage
-
TesterList::TESTER_XHPROF - testing with extention XHProf, required XHProf.
- xhprof_lib - path to xhprof_lib.php (not required)
- xhprof_runs - path to xhprof_runs.php (not required)
Compare custom functions
$myFunc1 = function($size)
{
... custom code ...
};
$myFunc2 = function($size)
{
... custom code ...
};
every custome functions should take int parameter - workload from volumesTest, (*5)
print Speedy::compare(['nameFunc1' => $myFunc1, 'nameFunc2' => $myFunc2]);
OR, (*6)
$params = [
'name' => 'Compare functions',
'volumesTest' => [100, 1000, 2000, 3000],
'repeatTest' => 5,
'viewers' => [ViewerList::VIEWER_TLIST, ViewerList::VIEWER_TGROUP, ViewerList::VIEWER_TAVG, ViewerList::VIEWER_GBUBLE],
'tester' => TesterList::TESTER_XHPROF,
];
print Speedy::compare(['nameFunc1' => $myFunc1, 'nameFunc2' => $myFunc2], $params);
Example viwers
VIEWER_TLIST, (*7)
, (*8)
VIEWER_TGROUP, (*9)
, (*10)
VIEWER_TAVG, (*11)
, (*12)
VIEWER_GBUBLE, (*13)
, (*14)