static function writeCSV() { if (!self::$write_csv) { return; } $profiler_dir = CConf::get('cache_dir'); $request_id = substr(md5(microtime(true)), 0, 6); global $zone; $requests_csv = $profiler_dir . 'requests.csv'; self::prepareCSV($requests_csv, array('zone', 'script', 'request')); self::writeCSVRecords($requests_csv, $request_id, array(array($zone == 'AdminZone' ? 'AZ' : 'CZ', $_SERVER['SCRIPT_NAME'], $_SERVER['QUERY_STRING']))); $general_csv = $profiler_dir . 'general.total.csv'; self::prepareCSV($general_csv, self::$profiler->getFields()); self::writeCSVRecords($general_csv, $request_id, array(self::$profiler->getData())); foreach (self::$stack as $key => $p) { $general_csv = $profiler_dir . 'general.' . self::prepareProfilerFileName($key) . '.csv'; self::prepareCSV($general_csv, $p->getFields()); self::writeCSVRecords($general_csv, $request_id, array($p->getData())); } if (self::$display_cache) { $cache_stat = CCacheFactory::getStat('array'); foreach ($cache_stat as $key => $cache_data) { $cache_csv = $profiler_dir . 'cache.' . strtolower($key) . '.csv'; unset($cache_data['storage']['log']); $fields_storage = array_keys($cache_data['storage']); $fields_driver = array_keys($cache_data['driver']); array_walk($fields_storage, 'self::addCacheFieldPrefix', 'storage_'); array_walk($fields_driver, 'self::addCacheFieldPrefix', 'driver_'); self::prepareCSV($cache_csv, array_merge($fields_storage, $fields_driver)); self::writeCSVRecords($cache_csv, $request_id, array(array_merge($cache_data['storage'], $cache_data['driver']))); } } if (self::$display_include) { $include_csv = $profiler_dir . 'include.csv'; self::prepareCSV($include_csv, array('counter', 'file_path')); $records = array(); foreach (self::$profiler->cnt_include as $file => $ctr) { $records[] = array($ctr, $file); } self::writeCSVRecords($include_csv, $request_id, $records); } if (self::$display_queries) { $queries_csv = $profiler_dir . 'queries.csv'; self::prepareCSV($queries_csv, array('total', 'unique', 'executed', 'time_db_layer', 'query_name')); $records = array(); foreach (self::$profiler->cnt_queries_executed as $query => $counter) { if ($counter > 1) { $records[] = array(@$counter['all'], sizeof(@$counter['unique']), @$counter['really'], self::$profiler->timer_db_layer_queries[$query]->getTime(), $query); } } self::writeCSVRecords($queries_csv, $request_id, $records); } if (self::$display_file_io) { $file_io_csv = $profiler_dir . 'file_io.csv'; self::prepareCSV($file_io_csv, array('read', 'write', 'read-write', 'parse', 'test', 'delete', 'file')); $records = array(); foreach (self::$profiler->cnt_file_io as $file => $cntrs) { $records[] = array((int) @$cntrs['read'], (int) @$cntrs['write'], (int) @$cntrs['read-write'], (int) @$cntrs['parse'], (int) @$cntrs['test'], (int) @$cntrs['delete'], $file); } self::writeCSVRecords($file_io_csv, $request_id, $records); } if (self::$display_block_tags) { $block_tags_csv = $profiler_dir . 'block_tags.csv'; self::prepareCSV($block_tags_csv, array('counter', 'time', 'block_tag')); $records = array(); foreach (self::$profiler->timer_block_tags as $block_tag => $time) { $records[] = array($time->getTotalCounter(), $time->getTime(), $block_tag); } self::writeCSVRecords($block_tags_csv, $request_id, $records); } }