comparison Lib/IMPL/Profiler.pm @ 206:c8fe3f84feba

+IMPL::Web::Handlers::ViewSelector +IMPL::Web::Handlers::ErrorHandler *IMPL::Web::Handlers::RestController moved types mappings to ViewSelector
author sergey
date Thu, 03 May 2012 16:48:39 +0400
parents 4d0e1962161c
children
comparison
equal deleted inserted replaced
205:891c04080658 206:c8fe3f84feba
74 if ( $frame[0] eq 'IMPL::Profiler::Proxy' ) { 74 if ( $frame[0] eq 'IMPL::Profiler::Proxy' ) {
75 my @next = CORE::caller($realFrame+1) or return; 75 my @next = CORE::caller($realFrame+1) or return;
76 @frame[0..2] = @next[0..2]; 76 @frame[0..2] = @next[0..2];
77 } 77 }
78 78
79 #warn "\t"x$level,"$frame[0] - $frame[3]"; 79 #warn " "x$level,"$frame[0] - $frame[3]";
80 return wantarray ? @frame : $frame[0]; 80 return wantarray ? @frame : $frame[0];
81 }; 81 };
82 } 82 }
83 } 83 }
84 84
122 my $entry = $prevCode; 122 my $entry = $prevCode;
123 my ($timeOwn,$timeTotal); 123 my ($timeOwn,$timeTotal);
124 my $context = wantarray; 124 my $context = wantarray;
125 { 125 {
126 local $InvokeTime = 0; 126 local $InvokeTime = 0;
127 #warn "\t"x$level,"enter ${class}::$method"; 127 #warn " "x$level,"enter ${class}::$method";
128 $level ++; 128 $level ++;
129 if ($context) { 129 if ($context) {
130 @arr = &$entry(@_); 130 @arr = &$entry(@_);
131 } else { 131 } else {
132 if (defined $context) { 132 if (defined $context) {
141 $InvokeInfo{"${class}::${method}"}{Count} ++; 141 $InvokeInfo{"${class}::${method}"}{Count} ++;
142 $InvokeInfo{"${class}::${method}"}{Total} += $timeTotal; 142 $InvokeInfo{"${class}::${method}"}{Total} += $timeTotal;
143 $InvokeInfo{"${class}::${method}"}{Own} += $timeOwn; 143 $InvokeInfo{"${class}::${method}"}{Own} += $timeOwn;
144 $InvokeTime += $timeTotal; 144 $InvokeTime += $timeTotal;
145 $level --; 145 $level --;
146 #warn "\t"x$level,"leave ${class}::$method"; 146 #warn " "x$level,"leave ${class}::$method";
147 return $context ? @arr : $scalar; 147 return $context ? @arr : $scalar;
148 }; 148 };
149 if ($proto) { 149 if ($proto) {
150 Scalar::Util::set_prototype($sub => $proto); 150 Scalar::Util::set_prototype($sub => $proto);
151 } 151 }