Mercurial > hg > isophonics-drupal-site
annotate vendor/squizlabs/php_codesniffer/src/Util/Timing.php @ 17:129ea1e6d783
Update, including to Drupal core 8.6.10
author | Chris Cannam |
---|---|
date | Thu, 28 Feb 2019 13:21:36 +0000 |
parents | |
children |
rev | line source |
---|---|
Chris@17 | 1 <?php |
Chris@17 | 2 /** |
Chris@17 | 3 * Timing functions for the run. |
Chris@17 | 4 * |
Chris@17 | 5 * @author Greg Sherwood <gsherwood@squiz.net> |
Chris@17 | 6 * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) |
Chris@17 | 7 * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence |
Chris@17 | 8 */ |
Chris@17 | 9 |
Chris@17 | 10 namespace PHP_CodeSniffer\Util; |
Chris@17 | 11 |
Chris@17 | 12 class Timing |
Chris@17 | 13 { |
Chris@17 | 14 |
Chris@17 | 15 /** |
Chris@17 | 16 * The start time of the run. |
Chris@17 | 17 * |
Chris@17 | 18 * @var float |
Chris@17 | 19 */ |
Chris@17 | 20 private static $startTime; |
Chris@17 | 21 |
Chris@17 | 22 /** |
Chris@17 | 23 * Used to make sure we only print the run time once per run. |
Chris@17 | 24 * |
Chris@17 | 25 * @var boolean |
Chris@17 | 26 */ |
Chris@17 | 27 private static $printed = false; |
Chris@17 | 28 |
Chris@17 | 29 |
Chris@17 | 30 /** |
Chris@17 | 31 * Start recording time for the run. |
Chris@17 | 32 * |
Chris@17 | 33 * @return void |
Chris@17 | 34 */ |
Chris@17 | 35 public static function startTiming() |
Chris@17 | 36 { |
Chris@17 | 37 |
Chris@17 | 38 self::$startTime = microtime(true); |
Chris@17 | 39 |
Chris@17 | 40 }//end startTiming() |
Chris@17 | 41 |
Chris@17 | 42 |
Chris@17 | 43 /** |
Chris@17 | 44 * Print information about the run. |
Chris@17 | 45 * |
Chris@17 | 46 * @param boolean $force If TRUE, prints the output even if it has |
Chris@17 | 47 * already been printed during the run. |
Chris@17 | 48 * |
Chris@17 | 49 * @return void |
Chris@17 | 50 */ |
Chris@17 | 51 public static function printRunTime($force=false) |
Chris@17 | 52 { |
Chris@17 | 53 if ($force === false && self::$printed === true) { |
Chris@17 | 54 // A double call. |
Chris@17 | 55 return; |
Chris@17 | 56 } |
Chris@17 | 57 |
Chris@17 | 58 if (self::$startTime === null) { |
Chris@17 | 59 // Timing was never started. |
Chris@17 | 60 return; |
Chris@17 | 61 } |
Chris@17 | 62 |
Chris@17 | 63 $time = ((microtime(true) - self::$startTime) * 1000); |
Chris@17 | 64 |
Chris@17 | 65 if ($time > 60000) { |
Chris@17 | 66 $mins = floor($time / 60000); |
Chris@17 | 67 $secs = round((($time % 60000) / 1000), 2); |
Chris@17 | 68 $time = $mins.' mins'; |
Chris@17 | 69 if ($secs !== 0) { |
Chris@17 | 70 $time .= ", $secs secs"; |
Chris@17 | 71 } |
Chris@17 | 72 } else if ($time > 1000) { |
Chris@17 | 73 $time = round(($time / 1000), 2).' secs'; |
Chris@17 | 74 } else { |
Chris@17 | 75 $time = round($time).'ms'; |
Chris@17 | 76 } |
Chris@17 | 77 |
Chris@17 | 78 $mem = round((memory_get_peak_usage(true) / (1024 * 1024)), 2).'MB'; |
Chris@17 | 79 echo "Time: $time; Memory: $mem".PHP_EOL.PHP_EOL; |
Chris@17 | 80 |
Chris@17 | 81 self::$printed = true; |
Chris@17 | 82 |
Chris@17 | 83 }//end printRunTime() |
Chris@17 | 84 |
Chris@17 | 85 |
Chris@17 | 86 }//end class |