Do you write a log line multiple times during the forked process. If so, open the file once at the beginning, lock and unlock everytime you need to log a line, but still keep the file open. Even if you are only logging once, the overhead of forking is probably harder on resources than opening the file for appending. The nice thing is that appending will always jump to the end, even if somebody else has printed to the file since you opened the file.

Another possible option is to open a pipe in the parent process, and fork off a child process that is only responsible for receiving the log. Upon thinking about this though, I guess you might have the same problem with possible co-mingling of lines while printing to the pipe buffer.

So, to optimize your system, keep forked children alive as long as possible, and open the file to be locked first thing.

my @a=qw(random brilliant braindead); print $a[rand(@a)];


In reply to Re: Those fork()ing flock()ers... by Rhandom
in thread Those fork()ing flock()ers... by ferrency

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.