public static function getAverage($format = self::SECONDS)
        {
            $count = count(static::$_queue);
            $sec = 0;
            $usec = static::get(static::MICROSECONDS);

            if ($usec > static::USECDIV) {
                // move the full second microseconds to the seconds' part
                $sec += (int) floor($usec / static::USECDIV);

                // keep only the microseconds that are over the static::USECDIV
                $usec = $usec % static::USECDIV;
            }

            switch ($format) {
                case static::MICROSECONDS:
                    $value = ($sec * static::USECDIV) + $usec;
                    return round($value / $count, 2);

                case static::MILLISECONDS:
                    $value = ($sec * 1000) + (int) round($usec / 1000, 0);
                    return round($value / $count, 2);

                case static::SECONDS:
                default:
                    $value = (float) $sec + (float) ($usec / static::USECDIV);
                    return round($value / $count, 2);
            }
        }