RE: Script compliation Sequence.

2001-09-07 Thread Bob Showalter

 -Original Message-
 From: Rajeev Rumale [mailto:[EMAIL PROTECTED]]
 Sent: Sunday, September 16, 2001 11:19 PM
 To: [EMAIL PROTECTED]
 Subject: Script compliation Sequence.
 
 
 Hello EveryBody
 
 I needed some advice for all.
 
 I am working on a untilty which needs to perform server functions.
 
 I am bit confused with compliation sequency of scripts, when 
 we use do,
 require or use to include into our scripts.

perldoc -q require

 
 I have written a library  file which contains all the common 
 routines, and
 include this in evey other script i write.
 
 This file is very very long running around 3000 lines.  But 
 most of the
 scripts use around 10% of the libraray routines only.
 
 As per my understanding when ever any script is invoked it 
 will complie both
 the script and the included files.  This is done each time 
 the script is
 invoke.
 
 I would like to know if I can group this subroutines into 
 different files
 and include only the relevant routines an and when required 
 depending upon
 coditions at runtime.

perldoc AutoSplit
perldoc perlmodlib

Also, if you are using Apache server, use mod_perl! http://perl.apache.org

-- 
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]




Script compliation Sequence.

2001-09-06 Thread Rajeev Rumale

Hello EveryBody

I needed some advice for all.

I am working on a untilty which needs to perform server functions.

I am bit confused with compliation sequency of scripts, when we use do,
require or use to include into our scripts.

I have written a library  file which contains all the common routines, and
include this in evey other script i write.

This file is very very long running around 3000 lines.  But most of the
scripts use around 10% of the libraray routines only.

As per my understanding when ever any script is invoked it will complie both
the script and the included files.  This is done each time the script is
invoke.

I would like to know if I can group this subroutines into different files
and include only the relevant routines an and when required depending upon
coditions at runtime.

This will keep the files size to be less and will also avoid unnecessary
compilation time.

with regards

Rajeev Rumale







That means I



Since not every sub routine is required




-- 
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]




Re: Script compliation Sequence.

2001-09-06 Thread Gunther Birznieks

At 11:19 AM 9/17/2001 +0800, Rajeev Rumale wrote:
Hello EveryBody

I needed some advice for all.

I am working on a untilty which needs to perform server functions.

I am bit confused with compliation sequency of scripts, when we use do,
require or use to include into our scripts.

I have written a library  file which contains all the common routines, and
include this in evey other script i write.

This file is very very long running around 3000 lines.  But most of the
scripts use around 10% of the libraray routines only.

Well, considering that CGI.pm is 6400 lines long and that includes yet 
other modules etc, I don't know if you should be worried about 3000 lines.

However, if most scripts use only 10% of the library routines, you might 
consider looking into a feature called AUTOLOAD and require the second 
library to instantiate the routines that are called less often.

As per my understanding when ever any script is invoked it will complie both
the script and the included files.  This is done each time the script is
invoke.

Not necessarily. use is always loading the modules at compile time. But 
require is only hit at run-time so you can selectively break up your 
library and only require the library or module on-demand. AUTOLOAD is 
something you should look into though.

I would like to know if I can group this subroutines into different files
and include only the relevant routines an and when required depending upon
coditions at runtime.

This will keep the files size to be less and will also avoid unnecessary
compilation time.


You should definitely consider refactoring a little bit to make sure that 
routines that are alike are grouped together. However, IMHO refactoring the 
library code just on how often the routines are called is not good in the 
long term.

I appreciate that you want to improve the performance of your CGI, but 300 
lines of code versus 2700 lines of code being loaded later is not going to 
make a big difference to the overall performance when you consider the many 
other libraries you are probably loading (and may not even know it!).

Second, refactoring based on how often the code is used rather than based 
on grouping them by like-task will be guaranteed to make your life a 
headache as you add and subtract routines as your requirements change for 
what the application is supposed to do (and any good program will change 
over time).

If performance is really your primary concern, I would sooner recommend 
that you split your code up by like functions, not for loading time and 
then for performance increase use mod_perl, Speedy::CGI or any other number 
of environments that can compile your code once but just keep it in memory 
for the future.



-- 
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]