--- database.mysqli.inc Wed Sep 9 03:20:41 2009 +++ database.mysqli.inc Wed Sep 9 13:03:29 2009 @@ -105,6 +105,9 @@ $query = '/* '. $name .' : '. $bt[2]['function'] .' */ '. $query; } + list($usec, $sec) = explode(' ', microtime()); + $timer = (float)$usec + (float)$sec; + $result = mysqli_query($active_db, $query); if (variable_get('dev_query', 0)) { @@ -118,6 +121,14 @@ if ($debug) { print '

query: '. $query .'
error:'. mysqli_error($active_db) .'

'; } + + list($usec, $sec) = explode(' ', microtime()); + $stop = (float)$usec + (float)$sec; + $diff = $stop - $timer; + + if (isset($diff) && $diff > 3) { + file_put_contents('slow.txt', $query . "\n\n\n" . $diff . parse_backtrace(debug_backtrace()) . "\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n", FILE_APPEND); + } if (!mysqli_errno($active_db)) { return $result; @@ -130,6 +141,16 @@ } } +function parse_backtrace($raw) { + $output=""; + foreach($raw as $entry) { + $output.="\nFile: ".$entry['file']." (Line: ".$entry['line'].")\n"; + $output.="Function: ".$entry['function']."\n"; + $output.="Args: ".implode(", ", $entry['args'])."\n"; + } + return $output; +} + /** * Fetch one result row from the previous query as an object. *