Joostina CMS / CMF v2.* API
  • Docs
  • Package
  • Class
  • Tree
  • Todo
Overview

Packages

  • Components
    • Acls
      • Models
        • Admin
        • Site
    • BlogCategory
      • Models
        • Admin
        • Site
    • Blogs
      • Controllers
        • Admin
        • Site
      • Helpers
      • Models
        • Admin
        • Site
    • Coder
      • Controllers
        • Admin
      • Models
        • Admin
    • Comments
      • Controllers
        • Admin
        • Site
      • Helpers
      • Models
        • Admin
        • Site
    • CommentsCounter
      • Models
        • Admin
        • Site
    • Mainpage
      • Controllers
        • Site
    • News
      • Controllers
        • Admin
        • Site
      • Helpers
      • Models
        • Admin
        • Site
    • Pages
      • Controllers
        • Admin
        • Site
      • Models
        • Site
    • Search
      • Controllers
        • Site
    • Site
      • Controllers
        • Admin
        • Site
    • Sitemap
      • Controllers
        • Admin
        • Site
      • Models
        • Admin
        • Site
    • Test
      • Controllers
        • Site
    • Torrents
      • Controllers
        • Site
    • Users
      • Controllers
        • Admin
        • Site
      • Models
        • Admin
        • Site
  • Compression
  • Core
    • Libraries
      • Arhive
      • Array
      • Attached
      • Autoadmin
      • Autoloader
      • Benchmark
      • Breadcrumbs
      • Cache
      • Config
      • Cookie
      • Csrf
      • Database
        • Drivers
          • Interfaces
      • Datetime
      • Debug
      • Editor
      • Events
      • File
      • Filter
      • Flashmessage
      • Folder
      • Hit
      • Html
      • Image
      • Inflector
      • Inputfilter
      • Libraries
      • Mail
      • Module
      • Nestedset
      • Pager
      • Pages
      • Params
      • Randomizer
      • Request
      • RobotLoader
      • Route
      • Security
      • Session
      • Static
      • String
      • Text
      • Trash
      • Validate
  • Email
  • Extra
    • Libraries
      • Basket
  • Joostina
    • Controller
    • Core
    • Document
  • JSMin
  • Libraries
    • Extra
      • Basket
        • Models
          • Site
  • None
  • Plugins
    • Autoadmin
    • Editor
    • Sitemap
  • SimpleMail
  • Vendors
    • Libraries
      • Email

Classes

  • joosBenchmark
  1: <?php defined('_JOOS_CORE') or exit();
  2: 
  3: /**
  4:  * Библиотека профилирования системы
  5:  *
  6:  * @version    1.0
  7:  * @package    Core\Libraries
  8:  * @subpackage Benchmark
  9:  * @category   Libraries
 10:  * @author     Joostina Team <info@joostina.ru>
 11:  * @copyright  (C) 2007-2012 Joostina Team
 12:  * @license    MIT License http://www.opensource.org/licenses/mit-license.php
 13:  * Информация об авторах и лицензиях стороннего кода в составе Joostina CMS: docs/copyrights
 14:  *
 15:  * */
 16: class joosBenchmark
 17: {
 18:     /**
 19:      * Внутренний массив хранения временных меток
 20:      *
 21:      * @var array
 22:      */
 23:     private static $markers = array();
 24: 
 25:     /**
 26:      * Время установки первой точки рассчета
 27:      *
 28:      * @var float
 29:      */
 30:     private static $start;
 31: 
 32:     public static function start()
 33:     {
 34:         if (self::$start !== null) {
 35:             throw new joosException('Таймер уже запущен');
 36:         }
 37:         self::$start = microtime(true);
 38:     }
 39: 
 40:     /**
 41:      * Установка точки рассчета времени
 42:      *
 43:      * @param string $name название точки рассчера
 44:      *
 45:      * @return int время прошедшее с установки последней точки до текущей
 46:      */
 47:     public static function mark($name)
 48:     {
 49:         if (self::$start === null) {
 50:             throw new joosException('Таймер сначала должен быть запущен');
 51:         }
 52: 
 53:         $mark = array();
 54:         // название точки рассчета
 55:         $mark['id'] = $name;
 56:         // время на момент создания точки
 57:         $mark['microtime'] = microtime(true);
 58:         // время, прошедшее с начала рассчета
 59:         $mark['since_start'] = $mark['microtime'] - self::$start;
 60:         // время с момента установки последней точки
 61:         $mark['since_last_mark'] = count(self::$markers) ? ($mark['microtime'] - self::$markers[count(self::$markers) - 1]['microtime']) : $mark['since_start'];
 62:         self::$markers[] = $mark;
 63: 
 64:         return $mark['since_last_mark'];
 65:     }
 66: 
 67:     /**
 68:      * Рассчет времени между двёмя точками рассчета
 69:      *
 70:      * @param string $mark1 название первой точки рассчета
 71:      * @param string $mark2 название второй точки рассчета
 72:      *
 73:      * @return float разница во времени между первой и второй точками рассчета в милисекундах
 74:      */
 75:     public static function elapsed_time($mark1, $mark2)
 76:     {
 77:         return self::$markers[$mark2] - self::$markers[$mark1];
 78:     }
 79: 
 80:     /**
 81:      * Очистка всех данных о внутренних точках рассчате и их значениях
 82:      *
 83:      */
 84:     public static function clear()
 85:     {
 86:         self::$markers = array();
 87:     }
 88: 
 89:     /**
 90:      * Получение внутренней информации о точках рассчета времени
 91:      *
 92:      * @return array массив информации о стоп-точках рассчета времени
 93:      */
 94:     public static function get_markers()
 95:     {
 96:         return self::$markers;
 97:     }
 98: 
 99:     /**
100:      * Получение полного времени с момента старта до текущего момента
101:      *
102:      * @return float затраченное время
103:      */
104:     public static function get_time()
105:     {
106:         return round((microtime(true) - self::$start), 5);
107:     }
108: 
109: }
110: 
Joostina CMS / CMF v2.* API API documentation generated by ApiGen 2.6.1 – Template adapted by @olvlv and Joostina Team