You are viewing a plain text version of this content. The canonical link for it is here.
Posted to modperl@perl.apache.org by jleidigh <jl...@uol.com.ar> on 2000/12/13 14:24:14 UTC

Help me beat Java.

I have written a awsome mod_perl module for Apache and 
now my companie wants to transform it to Java (ik). 
Nothing personal against java but 95% of the program is 
regular expressions. Perl is king in this area. In 
java they are using Oroinc 3rd party classes for the 
regexs. With some prliminary bench mark test of non 
mod_perl perl and Java, perl won being 12-20 times 
faster. But now they want to do super tuning and also 
compare Resource consumption between JRun/Java Servlets 
and Apache/mod_perl. My main concern is the fact that 
apache/mod_perl child proccess can be as big as 12 MB. 
Specifically my question is....

1. Is there a way to make mod_perl multi-threaded?

2. Is there a way to lower this memory consumtion?

3. Is there a way to precomplie perl to machine code to 
better perfomance? They are planning to do the same for 
Java and may gain performance. 

Help me beat Java, please.
_________________________________________________________________
UOLMAIL - Todo Argentino tiene derecho a tener su e-mail.
http://www.uolmail.com.ar



Re: Help me beat Java.

Posted by "G.W. Haywood" <ge...@www.jubileegroup.co.uk>.
Hi Stas,

On Wed, 13 Dec 2000, Stas Bekman wrote:
> On Wed, 13 Dec 2000, G.W. Haywood wrote:
> > There's a Perl to C translator but I don't tink you want to go there.
> 
> It doesn't make the code run faster. It only helps if you want to hide the
> source code (to make it harder to get to the source code :) 
> 
> and it won't work under mod_perl anyway.


I know.  I _said_ he didn't want to go there...:)

73,
Ged.



Re: Help me beat Java.

Posted by Stas Bekman <st...@stason.org>.
On Wed, 13 Dec 2000, G.W. Haywood wrote:

> Hi all,
> 
> On Wed, 13 Dec 2000, Vivek Khera wrote:
> 
> > j> 3. Is there a way to precomplie perl to machine code to
> > 
> > Don't think so, but there could be.
> 
> There's a Perl to C translator but I don't tink you want to go there.

It doesn't make the code run faster. It only helps if you want to hide the
source code (to make it harder to get to the source code :) 

and it won't work under mod_perl anyway.

_____________________________________________________________________
Stas Bekman              JAm_pH     --   Just Another mod_perl Hacker
http://stason.org/       mod_perl Guide  http://perl.apache.org/guide 
mailto:stas@stason.org   http://apachetoday.com http://logilune.com/
http://singlesheaven.com http://perl.apache.org http://perlmonth.com/  



Re: Help me beat Java.

Posted by "G.W. Haywood" <ge...@www.jubileegroup.co.uk>.
Hi all,

On Wed, 13 Dec 2000, Vivek Khera wrote:

> j> 3. Is there a way to precomplie perl to machine code to
> 
> Don't think so, but there could be.

There's a Perl to C translator but I don't tink you want to go there.

73,
Ged.



Re: Help me beat Java.

Posted by Vivek Khera <kh...@kciLink.com>.
>>>>> "j" == jleidigh  <jl...@uol.com.ar> writes:

j> faster. But now they want to do super tuning and also
j> compare Resource consumption between JRun/Java Servlets
j> and Apache/mod_perl. My main concern is the fact that
j> apache/mod_perl child proccess can be as big as 12 MB.
j> Specifically my question is....

j> 1. Is there a way to make mod_perl multi-threaded?

Not until apache 2.0 and mod_perl 2.0

j> 2. Is there a way to lower this memory consumtion?

Yes. See "The Guide".  If they are going to compare Java servlets,
then you must configure your mod_perl to act as a pure mod_perl server
rather than a server that answers all requests.  This is the
front-end/back-end setup that The Guide describes.

j> 3. Is there a way to precomplie perl to machine code to
j> better perfomance? They are planning to do the same for
j> Java and may gain performance.

Don't think so, but there could be.

-- 
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
Vivek Khera, Ph.D.                Khera Communications, Inc.
Internet: khera@kciLink.com       Rockville, MD       +1-240-453-8497
AIM: vivekkhera Y!: vivek_khera   http://www.khera.org/~vivek/

Re: Help me beat Java.

Posted by Gunther Birznieks <gu...@extropia.com>.
At 10:24 AM 12/13/00 -0300, jleidigh wrote:
>I have written a awsome mod_perl module for Apache and
>now my companie wants to transform it to Java (ik).

Why would your company want to redevelop something from scratch in another 
language instead of making use of the product they have now that works?

That seems really odd to be in a company that wishes to reinvent the wheel?

>Nothing personal against java but 95% of the program is
>regular expressions. Perl is king in this area. In
>java they are using Oroinc 3rd party classes for the
>regexs. With some prliminary bench mark test of non
>mod_perl perl and Java, perl won being 12-20 times
>faster. But now they want to do super tuning and also
>compare Resource consumption between JRun/Java Servlets
>and Apache/mod_perl. My main concern is the fact that
>apache/mod_perl child proccess can be as big as 12 MB.
>Specifically my question is....
>
>1. Is there a way to make mod_perl multi-threaded?

Yes, but not for the benefits you want. It doesn't matter if Perl is 
multi-threaded because two things lag behind -- Apache 2.0 as a 
multithreaded partner and CPAN modules that are within-Perl thread-safe. 
The first will happen given time, the 2nd is a problem that may never be 
solved (at least not for a year or two).

>2. Is there a way to lower this memory consumtion?

Some but not really that much other than being intelligent about 
preloading. Apache 2.0/mod_perl 2.0 models are supposed to be hooking into 
future versions of Perl to separate CODE and DATA segments within Perl 
itself. Right now Perl P-Code is mixed within data in Perl, so 
copy-on-write slowly degrades when it doesn't have to.

>3. Is there a way to precomplie perl to machine code to
>better perfomance? They are planning to do the same for
>Java and may gain performance.

Not really unless you are talking about not using mod_perl. I don't know of 
any servlet engines that exist that can load machine code compiled servlets 
though. I know TowerJ and products like that, but they compile an entire 
Java application, which doesn't fit well in the dynamically loadable apps.

I think when you compile a Java app there is a possibility you may lose 
some capability of integrating with existing Java classes....I think a 
similar thing holds true for compiling perl to machine code -- I am not 
sure if its ever gone beyond beta stage technology on Perl though.

Anyway, we know that Java is better at some things. So I think its been 
said here before... Time to market may be an issue for your company. Can 
your company realistically afford to play with Java and do they really need 
those features you mentioned.

Also, Java servlets is an app development technology. Mod_perl is MORE than 
that. But perhaps your company doesn't need that side of mod_perl.

Anyway, Good Luck.

Later,
    Gunther



Re: Help me beat Java.

Posted by Stas Bekman <st...@stason.org>.
[some intro snipped]
> and Apache/mod_perl. My main concern is the fact that 
> apache/mod_perl child proccess can be as big as 12 MB. 

even as big as 12.5MB :)

> Specifically my question is....
> 
> 1. Is there a way to make mod_perl multi-threaded?

http://perl.apache.org/~dougm/modperl_2.0.html

> 2. Is there a way to lower this memory consumtion?

http://perl.apache.org/guide/performance.html
http://perl.apache.org/guide/performance.html#Know_Your_Operating_System

> 3. Is there a way to precomplie perl to machine code to 
> better perfomance? They are planning to do the same for 
> Java and may gain performance. 

see #2

_____________________________________________________________________
Stas Bekman              JAm_pH     --   Just Another mod_perl Hacker
http://stason.org/       mod_perl Guide  http://perl.apache.org/guide 
mailto:stas@stason.org   http://apachetoday.com http://logilune.com/
http://singlesheaven.com http://perl.apache.org http://perlmonth.com/  



Re: Help me beat Java.

Posted by Nigel Hamilton <ni...@e1mail.com>.
> I have written a awsome mod_perl module for Apache and 
> now my companie wants to transform it to Java (ik). 
> Nothing personal against java but 95% of the program is 
> regular expressions. Perl is king in this area. In 
> java they are using Oroinc 3rd party classes for the 
> regexs. With some prliminary bench mark test of non 
> mod_perl perl and Java, perl won being 12-20 times 
> faster. But now they want to do super tuning and also 
> compare Resource consumption between JRun/Java Servlets 
> and Apache/mod_perl. My main concern is the fact that 
> apache/mod_perl child proccess can be as big as 12 MB. 
> Specifically my question is....
> 
> 
> 2. Is there a way to lower this memory consumtion?
> 


I haven't had time to look into this, but Gunther mentioned a new module
CGI::SpeedyCGI .... this enables persistent perl processes, outside of
Apache. Could you reduce the number of Apache Children and replace them
with SpeedyCGI backends? 

This should save memory and give you more waiting processes to answer
requests!

I haven't tested this .... but would be interested to know if anyone has
done this comparison?

I suppose it depends on whether or not you are using Apache:: modules that
need to be tied into the server --- if not, then maybe SpeedyCGI will save
you some memory?


NIge