GSP
Quick Navigator

Search Site

Unix VPS
A - Starter
B - Basic
C - Preferred
D - Commercial
MPS - Dedicated
Previous VPSs
* Sign Up! *

Support
Contact Us
Online Help
Handbooks
Domain Status
Man Pages

FAQ
Virtual Servers
Pricing
Billing
Technical

Network
Facilities
Connectivity
Topology Map

Miscellaneous
Server Agreement
Year 2038
Credits
 

USA Flag

 

 

Man Pages


Manual Reference Pages  -  PLACK::MIDDLEWARE::MEMORYUSAGE (3)

.ds Aq ’

NAME

Plack::Middleware::MemoryUsage - for measuring process memory

CONTENTS

SYNOPSIS



  use Plack::Builder;
  builder {
      enable "MemoryUsage",
          callback => sub {
              my ($env, $res, $before, $after, $diff) = @_;
              my $worst_count = 5;
              for my $pkg (sort { $diff->{$b} <=> $diff->{$a} } keys %$diff) {
                  warn sprintf("%-32s %8d = %8d - %8d [KB]\n",
                               $pkg,
                               $diff->{$pkg}/1024,
                               $after->{$pkg}/1024,
                               $before->{$pkg}/1024,
                              );
                  last if --$worst_count <= 0;
              }
          };
        $app;
  };
 
  # 1st                                diff      after     before
  MemoryEater                         36864 =    36873 -        9 [KB]
  B::Size2::Terse                       191 =      645 -      453 [KB]
  B::AV                                  21 =       37 -       16 [KB]
  B::HV                                   4 =       18 -       14 [KB]
  B::NV                                   0 =        8 -        8 [KB]
 
  # 2nd (grow up 18432 KB)
  MemoryEater                         18432 =    55305 -    36873 [KB]
  Plack::Middleware::MemoryUsage          0 =       13 -       13 [KB]
  IO::Socket::INET                        0 =      270 -      270 [KB]
  Apache2::Status                         0 =       26 -       26 [KB]
  Symbol                                  0 =       40 -       40 [KB]



DESCRIPTION

Plack::Middleware::MemoryUsage is middleware for measuring process memory.

Enabling Plack::Middleware::MemoryUsage causes huge performance penalty. So I HIGHLY RECOMMEND to enable this middleware only on development env or not processing every request on production using Plack::Middleware::Conditional.



  builder {
      ## with 1/3 probability
      enable_if { int(rand(3)) == 0 } "MemoryUsage",
      ## only exists X-Memory-Usage request header
      # enable_if { exists $_[0]->{HTTP_X_MEMORY_USAGE} } "MemoryUsage",
          callback => sub {
          ...
          };
        $app;
  };



CONFIGURATION

callback callback subref will be called after process app.



  callback => sub {
      my ($env, $res, $before, $after, $diff) = @_;
      ...
  };



First argument is Plack env.

Second argument is Plack response.

Third argument is a hash ref of memory usage by package at before process app.

Fourth argument is a hash ref of memory usage by package at after process app.

Fifth argument is a hash ref of difference memory usage by package between before and after.

packages packages arrayref will limit modules to measure.



  packages => [ Plack::Middleware, B::Size2::Terse, ...];



AUTHOR

HIROSE Masaaki <hirose31 _at_ gmail.com>

REPOSITORY

<https://github.com/hirose31/plack-middleware-memoryusage>



  git clone git://github.com/hirose31/plack-middleware-memoryusage.git



patches and collaborators are welcome.

SEE ALSO

Plack::Middleware

LICENSE

This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.
Search for    or go to Top of page |  Section 3 |  Main Index


perl v5.20.3 PLACK::MIDDLEWARE::MEMORYUSAGE (3) 2013-04-04

Powered by GSP Visit the GSP FreeBSD Man Page Interface.
Output converted with manServer 1.07.