First off, are you using mod_perl because that will give you a much better performance increase than trying to optimise the reading of a file.

Even if you are why not just let the OS handle deciding what files to keep in memory? And instead look for other bottlenecks in your code for which you will get a better return on your effort?

If don't like the idea of trusting the OS to decide what files to cache, and you really want to make it faster because this is where the bottleneck is(which I doubt), you could just use a ramdisk/tmpfs and copy the files there before using them. That way you can get the extra performance while still keeping a simple interface in your script (open, read close) with fewer dependances. Although you will probably not get the performance increase that you were expecting because the OS is normally pretty darn good at caching files.

You might also want to look into FastCGI http://www.fastcgi.com/ which allows you to run a cgi as a persistent process external to the webserver, and then the webserver connects to the CGI over TCP or a UDS.


In reply to Re: File Server for cgi scripts by tantarbobus
in thread File Server for cgi scripts by genecutl

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.