Changeset 3788
- Timestamp:
- 07/28/07 12:28:53 (3 years ago)
- Files:
-
- 1 modified
-
trunk/components/Needlworks.Function.Debug.php (modified) (17 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/components/Needlworks.Function.Debug.php
r3773 r3788 15 15 global $__tcSqlLog; 16 16 global $__tcSqlLogCount; 17 global $__tcSqlLogBeginTime; 18 global $__tcSqlLogStartTime; 19 20 $__tcSqlLogStartTime = explode(' ', microtime()); 17 global $__tcSqlQueryBeginTime; 18 global $__tcPageStartTime; 19 global $__tcPageEndTime; 20 21 $__tcPageStartTime = explode(' ', microtime()); 21 22 22 23 $__tcSqlLog= array(); … … 25 26 function __tcSqlLogBegin( $sql ) 26 27 { 27 global $__tcSqlLog, $__tcSql LogBeginTime, $__tcSqlLogCount;28 global $__tcSqlLog, $__tcSqlQueryBeginTime, $__tcSqlLogCount; 28 29 29 30 $backtrace = debug_backtrace(); … … 32 33 33 34 $__tcSqlLog[$__tcSqlLogCount] = array( 'sql' => trim($sql), 'backtrace' => $backtrace ); 34 $__tcSql LogBeginTime = explode(' ', microtime());35 $__tcSqlQueryBeginTime = explode(' ', microtime()); 35 36 } 36 37 function __tcSqlLogEnd( $result, $cachedResult = 0 ) 37 38 { 38 global $__tcSqlLog, $__tcSql LogBeginTime, $__tcSqlLogCount, $__tcSqlLogStartTime;39 global $__tcSqlLog, $__tcSqlQueryBeginTime, $__tcSqlLogCount, $__tcPageStartTime; 39 40 static $client_encoding = ''; 40 $tcSql LogEndTime = explode(' ', microtime());41 $elapsed = ($tcSql LogEndTime[1] - $__tcSqlLogBeginTime[1]) + ($tcSqlLogEndTime[0] - $__tcSqlLogBeginTime[0]);41 $tcSqlQueryEndTime = explode(' ', microtime()); 42 $elapsed = ($tcSqlQueryEndTime[1] - $__tcSqlQueryBeginTime[1]) + ($tcSqlQueryEndTime[0] - $__tcSqlQueryBeginTime[0]); 42 43 if( !$client_encoding ) { 43 44 $client_encoding = str_replace('_','-',mysql_client_encoding()); … … 57 58 $__tcSqlLog[$__tcSqlLogCount]['elapsed'] = 0; 58 59 } 60 $__tcSqlLog[$__tcSqlLogCount]['elapsed'] = sprintf("%4.1f", $__tcSqlLog[$__tcSqlLogCount]['elapsed'] ); 59 61 $__tcSqlLog[$__tcSqlLogCount]['cached'] = $cachedResult; 60 62 $__tcSqlLog[$__tcSqlLogCount]['rows'] = 0; 61 $__tcSqlLog[$__tcSqlLogCount]['endtime'] = ($tcSql LogEndTime[1] - $__tcSqlLogStartTime[1]) + ($tcSqlLogEndTime[0] - $__tcSqlLogStartTime[0]);62 $__tcSqlLog[$__tcSqlLogCount]['endtime'] = ceil($__tcSqlLog[$__tcSqlLogCount]['endtime'] * 10000) / 10;63 $__tcSqlLog[$__tcSqlLogCount]['endtime'] = ($tcSqlQueryEndTime[1] - $__tcPageStartTime[1]) + ($tcSqlQueryEndTime[0] - $__tcPageStartTime[0]); 64 $__tcSqlLog[$__tcSqlLogCount]['endtime'] = sprintf("%4.1f",ceil($__tcSqlLog[$__tcSqlLogCount]['endtime'] * 10000) / 10); 63 65 if( ! $cachedResult && mysql_errno() == 0 ) { 64 66 switch( strtolower(substr($__tcSqlLog[$__tcSqlLogCount]['sql'], 0, 6 )) ) … … 75 77 } 76 78 $__tcSqlLogCount++; 77 $__tcSql LogBeginTime = 0;79 $__tcSqlQueryBeginTime = 0; 78 80 } 79 81 80 82 function __tcSqlLogPoint($description = null) 81 83 { 82 global $__tcSqlLog, $__tcSql LogBeginTime, $__tcSqlLogCount, $__tcSqlLogStartTime;84 global $__tcSqlLog, $__tcSqlQueryBeginTime, $__tcSqlLogCount, $__tcPageStartTime, $__tcPageEndTime; 83 85 if (is_null($description)) $description = 'Point'; 84 86 $backtrace = debug_backtrace(); … … 86 88 array_shift($backtrace); 87 89 $__tcSqlLog[$__tcSqlLogCount] = array( 'sql' => '['. trim($description) .']', 'backtrace' => $backtrace ); 88 $__tcSql LogBeginTime = explode(' ', microtime());89 $tcSql LogEndTime = explode(' ', microtime());90 $__tcSqlQueryBeginTime = explode(' ', microtime()); 91 $tcSqlQueryEndTime = explode(' ', microtime()); 90 92 $__tcSqlLog[$__tcSqlLogCount]['error'] = ''; 91 93 $__tcSqlLog[$__tcSqlLogCount]['errno'] = ''; … … 93 95 $__tcSqlLog[$__tcSqlLogCount]['cached'] = ''; 94 96 $__tcSqlLog[$__tcSqlLogCount]['rows'] = ''; 95 $__tcSqlLog[$__tcSqlLogCount]['endtime'] = ($tcSqlLogEndTime[1] - $__tcSqlLogStartTime[1]) + ($tcSqlLogEndTime[0] - $__tcSqlLogStartTime[0]); 96 $__tcSqlLog[$__tcSqlLogCount]['endtime'] = ceil($__tcSqlLog[$__tcSqlLogCount]['endtime'] * 10000) / 10; 97 $__tcSqlLog[$__tcSqlLogCount]['endtime'] = ($tcSqlQueryEndTime[1] - $__tcPageStartTime[1]) + ($tcSqlQueryEndTime[0] - $__tcPageStartTime[0]); 98 $__tcSqlLog[$__tcSqlLogCount]['endtime'] = sprintf("%4.1f",ceil($__tcSqlLog[$__tcSqlLogCount]['endtime'] * 10000) / 10); 99 $__tcPageEndTime = $__tcSqlLog[$__tcSqlLogCount]['endtime']; 97 100 $__tcSqlLog[$__tcSqlLogCount]['rows'] = ''; 98 101 $__tcSqlLogCount++; 99 $__tcSql LogBeginTime = 0;102 $__tcSqlQueryBeginTime = 0; 100 103 } 101 104 … … 119 122 function __tcSqlLogDump() 120 123 { 121 global $__tcSqlLog, $__tc SqlLogBeginTime, $__tcSqlLogCount;124 global $__tcSqlLog, $__tcPageEndTime; 122 125 global $service; 123 global $__tcSqlLogPumped;124 125 if ( isset($__tcSqlLogPumped)) return;126 $ __tcSqlLogPumped = true;126 static $sLogPumped = false; 127 128 if (!empty($sLogPumped)) return; 129 $sLogPumped = true; 127 130 128 131 __tcSqlLogPoint('shutdown'); … … 242 245 EOS; 243 246 244 $elapsed_total = 0;247 $elapsed_total_db = 0; 245 248 246 249 $elapsed = array(); … … 249 252 foreach( $__tcSqlLog as $c => $log ) { 250 253 $elapsed[$count] = array( $log['elapsed'], $count ); 254 $__tcSqlLog[$c]['percent'] = sprintf("%4.1f", $log['endtime']*100/$__tcPageEndTime); 251 255 $count++; 252 256 } … … 263 267 <thead> 264 268 <tr> 265 <th>count</th><th class="sql">query string</th><th>elapsed </th><th>elapsed sum</th><th>rows</th><th>error</th><th>stack</th>269 <th>count</th><th class="sql">query string</th><th>elapsed (ms)</th><th>elapsed sum (ms)</th><th></th><th>rows</th><th>error</th><th>stack</th> 266 270 </tr> 267 271 </thead> … … 292 296 $trclass .= ' debugCached'; 293 297 $count_label = ''; 298 $backtrace = ''; 294 299 } 295 300 if ($log['sql'] == '[shutdown]') { … … 298 303 $trclass .= ' debugSystem'; 299 304 $count_label = ''; 305 $backtrace = ''; 300 306 } 301 307 302 $log['elapsed'] = sprintf("%01.4f",$log['elapsed'] / 1000); 303 $elapsed_total += $log['elapsed']; 304 308 $elapsed_total_db += $log['elapsed']; 309 $elapsed_total = $log['endtime']; 310 $progress_bar = $log['percent'] / 2; //Max 50px; 311 $log['percent'] = "<div style='background:#f00;line-height:10px;width:{$progress_bar}px'> <div>"; 305 312 print <<<TBODY 306 313 <tr class="debugSQLLine{$trclass}"> … … 309 316 <td class="elapsed">{$log['elapsed']}</td> 310 317 <td class="elapsedSum">{$log['endtime']}</td> 318 <td class="elapsedSum">{$log['percent']}</td> 311 319 <td class="rows">{$log['rows']}</td> 312 320 <td class="error">{$error}</td> … … 321 329 print '</tbody>'; 322 330 323 $elapsed_total = $elapsed_total / 1000;324 331 $count--; 325 332 $real_query_count = $count - $cached_count; … … 328 335 <tfoot> 329 336 <tr> 330 <td colspan='7'>$count ($real_query_count+$cached_count cache) Queries, $elapsed_total seconds elapsed</td> 337 <td colspan='7'> 338 $count ($real_query_count+$cached_count cache) Queries <br /> 339 $elapsed_total_db ms elapsed in db query, overall $elapsed_total ms elapsed 340 </td> 331 341 </tr> 332 342 </tfoot> … … 336 346 global $service; 337 347 if( ! empty($service['debug_session_dump'])) { 338 print '<pre> $_SESSION = '; 348 print '<pre> session_id = ' . session_id() . "\r\n"; 349 print '$_SESSION = '; 339 350 print_r( $_SESSION ); 340 351 print '</pre>';
