You’re measuring oddly or the wrong part, maybe? It will never take less than 3 seconds to connect to the mock DB server, because that’s just what the code calls for. The connection to the webapp and its responses are not related though—the $app sub is initialized, holding a DB handle, ready to execute—and seems to be perfectly zippy unless I’m missing something–

moo@cow[21]~>plackup pm-1191821 HTTP::Server::PSGI: Accepting connections at http://0:5000/ -- moo@cow[701]~>time curl http://0:5000/ connect took 3.1313986862815 seconds 0.004u 0.004s 0:00.00 0.0% 0+0k 0+0io 0pf+0w

Here it the same with some internal timing code–

use Time::HiRes qw( sleep gettimeofday tv_interval ); # ... sub main { state $db_handle = mock_connect(+shift); sub { my $t0 = [ gettimeofday ]; [ 200, [], [ sprintf "Application sub took %.6f seconds\n", tv_interval( $t0, [ gettimeofday ] ) ] ]; }; } # ... __END__ moo@cow[56]~>curl http://0:5000/ Application sub took 0.000001 seconds moo@cow[57]~>curl http://0:5000/ Application sub took 0.000002 seconds

In reply to Re: How do I make a PSGI program do costly initialisation only once per process, not per thread? by Your Mother
in thread How do I make a PSGI program do costly initialisation only once per process, not per thread? by daxim

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post, it's "PerlMonks-approved HTML":



  • Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
  • Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
  • Read Where should I post X? if you're not absolutely sure you're posting in the right place.
  • Please read these before you post! —
  • Posts may use any of the Perl Monks Approved HTML tags:
    a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
  • You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
            For:     Use:
    & &amp;
    < &lt;
    > &gt;
    [ &#91;
    ] &#93;
  • Link using PerlMonks shortcuts! What shortcuts can I use for linking?
  • See Writeup Formatting Tips and other pages linked from there for more info.