Version 1
[yaffs-website] / vendor / phpunit / php-timer / src / Timer.php
diff --git a/vendor/phpunit/php-timer/src/Timer.php b/vendor/phpunit/php-timer/src/Timer.php
new file mode 100644 (file)
index 0000000..7b5c432
--- /dev/null
@@ -0,0 +1,105 @@
+<?php
+/*
+ * This file is part of the PHP_Timer package.
+ *
+ * (c) Sebastian Bergmann <sebastian@phpunit.de>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/**
+ * Utility class for timing.
+ */
+class PHP_Timer
+{
+    /**
+     * @var array
+     */
+    private static $times = array(
+      'hour'   => 3600000,
+      'minute' => 60000,
+      'second' => 1000
+    );
+
+    /**
+     * @var array
+     */
+    private static $startTimes = array();
+
+    /**
+     * @var float
+     */
+    public static $requestTime;
+
+    /**
+     * Starts the timer.
+     */
+    public static function start()
+    {
+        array_push(self::$startTimes, microtime(true));
+    }
+
+    /**
+     * Stops the timer and returns the elapsed time.
+     *
+     * @return float
+     */
+    public static function stop()
+    {
+        return microtime(true) - array_pop(self::$startTimes);
+    }
+
+    /**
+     * Formats the elapsed time as a string.
+     *
+     * @param  float  $time
+     * @return string
+     */
+    public static function secondsToTimeString($time)
+    {
+        $ms = round($time * 1000);
+
+        foreach (self::$times as $unit => $value) {
+            if ($ms >= $value) {
+                $time = floor($ms / $value * 100.0) / 100.0;
+
+                return $time . ' ' . ($time == 1 ? $unit : $unit . 's');
+            }
+        }
+
+        return $ms . ' ms';
+    }
+
+    /**
+     * Formats the elapsed time since the start of the request as a string.
+     *
+     * @return string
+     */
+    public static function timeSinceStartOfRequest()
+    {
+        return self::secondsToTimeString(microtime(true) - self::$requestTime);
+    }
+
+    /**
+     * Returns the resources (time, memory) of the request as a string.
+     *
+     * @return string
+     */
+    public static function resourceUsage()
+    {
+        return sprintf(
+            'Time: %s, Memory: %4.2fMB',
+            self::timeSinceStartOfRequest(),
+            memory_get_peak_usage(true) / 1048576
+        );
+    }
+}
+
+if (isset($_SERVER['REQUEST_TIME_FLOAT'])) {
+    PHP_Timer::$requestTime = $_SERVER['REQUEST_TIME_FLOAT'];
+} elseif (isset($_SERVER['REQUEST_TIME'])) {
+    PHP_Timer::$requestTime = $_SERVER['REQUEST_TIME'];
+} else {
+    PHP_Timer::$requestTime = microtime(true);
+}