Jank Profiler
For when you don't want to figure out actual profilers., (*1)
Use Jank Profiler to wrap individual objects in your application to track memory usage and
execution time of method calls belonging to that objects public api., (*2)
Usage
Let's say you have some code in your application that looks like this:, (*3)
$myQuestionableObject = new WhompWhompDoDad(['thinger_option_x' => true]);
$whompTimes = 3;
$myQuestionableObject->whomp($whompTimes);
$myQuestionableObjecct->doDad();
you can jank profile the WhompWhompDoDad instance like this:, (*4)
$myQuestionableObject = new JankProfiler('WhompWhompDoDad', [['thinger_option_x' => true]]);
$whompTimes = 3;
$myQuestionableObject->whomp($whompTimes);
$myQuestionableObjecct->doDad();
echo $myQuestionableObject->report('json') . "\n"; exit;
This will produce JSON output similar to:, (*5)
[
{
"type": "construct",
"meta": {
"classname": "WhompWhompDoDad",
"constructor_args": [
{
"thinger_option_x": true
}
]
},
"memory_before": 464280,
"start_time": 1425158122.1155,
"memory_after": 477968,
"end_time": 1425158122.116
},
{
"type": "method call",
"meta": {
"method": "whomp",
"arguments": [
3
]
},
"start_time": 1425158122.116,
"memory_before": 479896,
"end_time": 1425158122.116,
"memory_after": 480312
},
{
"type": "method call",
"meta": {
"method": "doDad",
"arguments": []
},
"start_time": 1425158122.116,
"memory_before": 481976,
"end_time": 1425158122.116,
"memory_after": 482344
}
]
Pretty neat!, (*6)
Author
Colin DeCarlo, colin@thedecarlos.ca, (*7)
License
Jank Profiler is licensed under the MIT License - see the LICENSE file for details, (*8)