in reply to Re: Pick random file and print
in thread Pick random file and print

I should have clarified this a bit better. The files reside in a directory beneath the www directory, and I think the overheads on loading CGI.pm is too great (?).

I wonder if throwing the HTML data into an SQL table and grab the info from there would speed things up. I mean; is this faster than accessing and printing a file? I doubt it, as this is what Perl fundamentally does best, but I really am not sure.

Thank you for your thoughts, though - much appreciated!

- wil

Replies are listed 'Best First'.
Re: Re: (Dog and Pony): Pick random file and print
by dsheroh (Monsignor) on May 07, 2002 at 15:10 UTC
    If you're loading CGI.pm for each request, then you must not be using mod_perl, which would give you a performance boost just by avoiding having to load perl repeatedly.

    Once you're there, you can also start caching data from one request to the next by using apache's fastcgi module or by turning your cgi into an apache module itself. If you need to keep the list of available files up-to-the-second, you can store a database connection for future requests. If it can lag a bit, then just keep the list of files around - each server process (assuming apache) will, by default, die after handling 50 requests, at which point your cached data will disappear and be reloaded by the new server spawned to replace it.

    Going to SQL without mod_perl/fastcgi, though, would just make things worse, due to the overhead of opening a new database connection for each request.

Re: Re: (Dog and Pony): Pick random file and print
by Dog and Pony (Priest) on May 07, 2002 at 15:10 UTC
    You wouldn't really have to load CGI.pm, I guess. You could go with something lighter (look here for instance), or you could have a look at what CGI.pm is doing when you do print $q->redirect($your_url);. You should be able to emit the same with something like:
    print "Status: 302 Moved\n"; print "Location: $your_url\n\n";
    Instead of the usual "Content-type: text/html". The url can be relative as well, if that makes it easier. :) If you have cookies and other stuff this gets more complex, of course.

    Not that it matters much if you can't access the documents via the web server (was that what you meant with "beneath"?) and have no intention of moving them. :) If so, the frameset idea also goes bye-bye.

    As for the SQL table - probably not if you are not using mod_perl or something similar which has persistence. Doing SQL querys is very fast, but there is lots of overhead when opening a new connection to the database, so you probably lose anyways.

    Not much of ideas I guess - I still think it is about as good as you can do, unless you change approach, that was all. I guess this is gonna bite me hard when someone proves me *really* wrong. :)


    You have moved into a dark place.
    It is pitch black. You are likely to be eaten by a grue.