in reply to what can delay the execution of a cgi script?

What OS/Webserver/Perl?
DB_File or BerkeleyDB?
What is "do stuff" in time->attempt lock->do stuff->release lock->get time? Are you locking the database when you're just reading?
What is takes the longest (attempt lock, do stuff, what, narrow it down)?
I'm assuming that if you have a slow internet connection that the webserver will buffer the output of the script until the client has received the content.
It probably doesn't.
My question is: What can cause one browser/user/connection to take longer to execute a script than another?
Either something related to hardware or software (disks are slow or you're doing too many things, infinite loop, ... or something).

MJD says "you can't just make shit up and expect the computer to know what you mean, retardo!"
I run a Win32 PPM repository for perl 5.6.x and 5.8.x -- I take requests (README).
** The third rule of perl club is a statement of fact: pod is sexy.

Replies are listed 'Best First'.
Re^2: what can delay the execution of a cgi script?
by traxlog (Scribe) on May 24, 2005 at 13:44 UTC
    What OS/Webserver/Perl?
    AFAIK unix, perl 5.6.1. I'd have to investigate further to find out
    Each execution reads and writes to the 13 databases (DB_File) so I've set it up to use a lockfile to prevent ANY access to the DB's unless the lock is granted.
    "Do stuff" is anything from adding events to the agenda, address book, adding content to the sites. etc
    If there were a set of calls to one of the programs that constantly take longer then it would be easy to trace. Unfortunately what one person receives in .5 seconds, another receives in 17 seconds, and then only sometimes. I can't replicate the exact conditions except for pure cgi input over my adsl connection.

    "It probably doesn't." ... buffer the output is interesting. Is there anyway of doing this? Should I prepare my HTML content ready for output, release lock for further executions and then print the HTML (since there would be no further DB access)?
    Thanks for your help.