Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?php
- const EXECUTION_TIME = 60;
- // <preparation>
- $items = range(0, 10);
- function some_filter($item)
- {
- return $item % 2 === 0;
- }
- // </preparation>
- $timingStart = microtime(true);
- $memoryStart = memory_get_usage(true);
- $peakStart = memory_get_peak_usage(true);
- for ($iterations = 0; $iterations < PHP_INT_MAX; $iterations++) {
- // <code>
- $even = array_filter($items, 'some_filter');
- // </code>
- // Timing control:
- if ($iterations % 1000 === 0 &&
- microtime(true) - $timingStart >= EXECUTION_TIME) {
- break;
- }
- }
- $timingDuration = microtime(true) - $timingStart;
- $memoryEnd = memory_get_usage(true);
- $memoryUsage = $memoryEnd - $memoryStart;
- $peakEnd = memory_get_peak_usage(true);
- $peakUsage = $peakEnd - $peakStart;
- echo "\n\n";
- printf("Cycles count : %.2f\n", $iterations);
- printf("Cycles by min. : %.2f\n", 60 / $timingDuration * $iterations);
- printf("Total time : %.2f sec.\n", $timingDuration);
- printf("Memory usage : %.2f MB (on end) - %.2f MB (on start) = %.2f MB (delta)\n",
- $memoryEnd / 1048576,
- $memoryStart / 1048576,
- $memoryUsage / 1048576);
- printf("Memory peak : %.2f MB (on end) - %.2f MB (on start) = %.2f MB (delta)\n\n\n",
- $peakEnd / 1048576,
- $peakStart / 1048576,
- $peakUsage / 1048576);
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement