Esempio n. 1
0
 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);
     }
 }