/home/mjc1/public_html/db_admin/libraries/dbg/profiling.php


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
<?php
/* $Id: profiling.php,v 2.5 2004/05/20 16:14:11 nijel Exp $ */
// vim: expandtab sw=4 ts=4 sts=4:

if (isset($GLOBALS['DBG']) && $GLOBALS['DBG']
        && isset(
$GLOBALS['cfg']['DBG']['profile']['enable'])
        && 
$GLOBALS['cfg']['DBG']['profile']['enable']) {

    
/**
     * Displays profiling results when called
     * WARNING: this function is SLOW
     */
    
function dbg_dump_profiling_results() {
        
/* Applies to the original 'dbg_dump_profiling_results' function,
         * sourced from http://dd.cron.ru/dbg/download.php?h=prof_sample2
         * Copyright (c) 2002. Dmitri Dmitrienko
         * LICENCE: This source file is subject to Mozilla Public License (MPL)
         * AUTHOR: Dmitri Dmitrienko <dd@cron.ru>
         */

        
dbg_get_profiler_results(&$dbg_prof_results);

        echo 
'<br /><table width="1000" cellspacing="0" cellpadding="2" style="font:8pt courier">' "\n" .
            
'<thead>' "\n" .
            
'<tr style="background:#808080; color:#FFFFFF">' "\n" .
            
'<td>' $GLOBALS['strDBGModule'] . '</td>' "\n" .
            
'<td>' $GLOBALS['strDBGLine'] . '</td>' "\n" .
            
'<td>' $GLOBALS['strDBGHits'] . '</td>' "\n" .
            
'<td>' $GLOBALS['strDBGTimePerHitMs'] . '</td>' "\n" .
            
'<td>' $GLOBALS['strDBGTotalTimeMs'] . '</td>' "\n" .
            
'<td>' $GLOBALS['strDBGMinTimeMs'] . '</td>' "\n" .
            
'<td>' $GLOBALS['strDBGMaxTimeMs'] . '</td>' "\n" .
            
'<td>' $GLOBALS['strDBGContextID'] . '</td>' "\n" .
            
'<td>' $GLOBALS['strDBGContext'] . '</td>' "\n" .
            
'</tr></thead>' "\n" .
            
'<tbody style="vertical-align: top">' "\n";
        foreach (
$dbg_prof_results['line_no'] AS $idx => $line_no) {
            
$mod_no $dbg_prof_results['mod_no'][$idx];
            
dbg_get_module_name($mod_no, &$mod_name);

            
//if (strpos("!".$mod_name, 'dbg.php') > 0) continue;

            
$hit_cnt $dbg_prof_results['hit_count'][$idx];

            
$time_sum $dbg_prof_results['tm_sum'][$idx] * 1000;
            
$time_avg_hit $time_sum $hit_cnt;
            
$time_min $dbg_prof_results['tm_min'][$idx] * 1000;
            
$time_max $dbg_prof_results['tm_max'][$idx] * 1000;

            
$time_sum sprintf('%.3f'$time_sum);
            
$time_avg_hit sprintf('%.3f'$time_avg_hit);
            
$time_min sprintf('%.3f'$time_min);
            
$time_max sprintf('%.3f'$time_max);

            
dbg_get_source_context($mod_no$line_no, &$ctx_id);

            
//use a default context name if needed
            
if (dbg_get_context_name($ctx_id, &$ctx_name)
                    && 
strcmp($ctx_name,'') == 0) {
                
$ctx_name "::main";
            }

            
$bk "#ffffff";
            if ((
$idx 1) == 0)
                
$bk "#e0e0e0";

            if (
$time_avg_hit $GLOBALS['cfg']['DBG']['profile']['threshold'] ) {
                echo 
'<tr style="background:' $bk '">' .
                    
'<td>' $mod_name '</td>' .
                    
'<td>' $line_no '</td>' .
                    
'<td>' $hit_cnt '</td>' .
                    
'<td>' $time_avg_hit '</td>' .
                    
'<td>' $time_sum '</td>' .
                    
'<td>' $time_min '</td>' .
                    
'<td>' $time_max '</td>' .
                    
'<td>' $ctx_id '</td>' .
                    
'<td>' $ctx_name '</td>' .
                    
'</tr>' "\n";
            }
        }
        echo 
"</tbody></table>";
    }
}

?>