[Jifty-commit] r6866 - plugins/Jifty-Plugin-NYTProf/lib/Jifty/Plugin

Jifty commits jifty-commit at lists.jifty.org
Thu Apr 23 00:20:13 EDT 2009


Author: sartak
Date: Thu Apr 23 00:20:13 2009
New Revision: 6866

Modified:
   plugins/Jifty-Plugin-NYTProf/lib/Jifty/Plugin/NYTProf.pm

Log:
Begin refactoring to use request inspector

Modified: plugins/Jifty-Plugin-NYTProf/lib/Jifty/Plugin/NYTProf.pm
==============================================================================
--- plugins/Jifty-Plugin-NYTProf/lib/Jifty/Plugin/NYTProf.pm	(original)
+++ plugins/Jifty-Plugin-NYTProf/lib/Jifty/Plugin/NYTProf.pm	Thu Apr 23 00:20:13 2009
@@ -45,14 +45,6 @@
 
     if ($self->profile_request) {
         warn "Only profiling requests; unset NYTPROF environment variable to profile startup\n";
-
-        Jifty::Handler->add_trigger(
-            before_request => sub { $self->before_request(@_) }
-        );
-
-        Jifty::Handler->add_trigger(
-            after_request => sub { $self->after_request(@_) }
-        );
     } else {
         warn "Only profiling startup time -- set NYTPROF=start=no to profile requests\n";
         Jifty->add_trigger(
@@ -61,30 +53,42 @@
     }
 }
 
-sub before_request {
+sub inspect_before_request {
     my $self = shift;
 
-    my $file = File::Spec->catfile( __PACKAGE__->base_root, 'nytprof-'.(1+scalar @requests).".out" );
-    warn "==> enabling profile at $file";
-    DB::enable_profile( $file );
+    return unless $self->profile_request;
+
+    my $id = Jifty->web->serial;
+
+    my $file = File::Spec->catfile( __PACKAGE__->base_root, "nytprof-$id" );
+    warn "==> enabling profile at $file.out";
+
+    DB::enable_profile("$file.out");
+
+    return $file;
 }
 
-sub after_request {
+sub inspect_after_request {
     my $self = shift;
-    my $handler = shift;
-    my $cgi = shift;
+    my $file = shift;
+
+    return unless $self->profile_request;
+
     DB::finish_profile();
 
-    push @requests, {
-        id => 1 + @requests,
-        url => $cgi->url(-absolute=>1,-path_info=>1),
-        time => scalar gmtime,
-    };
-    return 1;
+    return $file;
 }
 
-sub clear_profiles {
-    @requests = ();
+sub inspect_render_analysis {
+    my $self = shift;
+    my $file = shift;
+
+    my ($self_plugin) = Jifty->find_plugin('Jifty::Plugin::NYTProf');
+    return if -d "$file";
+    die "Unable to find profile output file '$file.out'" unless -e "$file.out";
+    system("nytprofhtml -f $file.out -o $file");
+
+    return;
 }
 
 1;


More information about the Jifty-commit mailing list