axis-java-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Thomas Börkel ...@ap-ag.com>
Subject RE: Performance of WSDL generation (benchmark program included)
Date Wed, 27 Feb 2002 16:41:18 GMT
HI!

I have extracted the latest bcel and tt-bytecode implementation from ClassRep.java and put
in a little benchmark program. Plase find it attached.

I discovered that in the latest version of Axis with bcel (2002-02-18), the bcel calling code
is broken. The getParameterNames() method could never have worked correctly, I don't know
why it worked (maybe some fallback to javap?).

Anyway, bcel and tt-bytecode deliver the same results in my program, but the bigger the class,
the more faster is bcel. For example 0.5s vs. 15s (this was a class with 98 methods, incl.
inherited methods). Maybe the tt-bytecode version can be optimized...

I cannot supply a class for testing, because all our classes have many dependencies and so
cannot be loaded on their own. But I'm sure, you'll have a big class for testing.

Regards,
Thomas



> -----Original Message-----
> From: Glen Daniels [mailto:gdaniels@macromedia.com]
> Sent: Dienstag, 26. Februar 2002 14:13
> To: axis-user@xml.apache.org
> Subject: Re: Performance of WSDL generation
> 
> 
> Hi Thomas!
> 
> I haven't seen this, but I'll take a look into it when I get 
> a chance.  As it
> stands, BCEL was not working for JWS files because of 
> classloader issues, so
> the switch was an immediate solution.  I have a hacked 
> version of BCEL from the
> team which should solve the problem, but haven't had a chance 
> to try it yet.  I
> must admit though, the fact that tt-bytecode is less than 
> half the size of BCEL
> is pretty appealing to me as well.
> 
> I'm in a meeting most of the day today, then at the WSDL 
> interop event tomorrow
> and Thursday, so I probably won't get to look at this in 
> detail until Friday.
> If you want to put together a little performance tester (i.e. 
> pull out the
> argument name extraction code into a test class) and gather 
> some numbers for
> BCEL vs. tt-bytecode, that would be really helpful for us and 
> also for the
> BCEL/tt-bytecode teams, I'm sure.
> 
> --Glen
> 
> ----- Original Message -----
> From: "Thomas Börkel" <tb@ap-ag.com>
> To: "Axis User Mailinglist" <axis-user@xml.apache.org>
> Sent: Tuesday, February 26, 2002 4:53 AM
> Subject: Performance of WSDL generation
> 
> 
> HI!
> 
> Since the switch from bcel.jar to tt-bytecode.jar for 
> analyzing Java .class
> files in the WSDL generation process, performance has become 
> unacceptable. What
> was 1-2 seconds is now 30 seconds with some .class files. Am 
> I the only one
> experiencing this?
> 
> I have attached the .class file of a class 
> com.apag.p2plus.p2sales.Rechnung,
> which has only 367 source lines and still takes 30 seconds.
> 
> This is how I generate the WSDL:
> 
>         emitter = new Emitter();
>         emitter.setCls(Class.forName(completeName));
>         emitter.setAllowedMethods(allowedMethods.toString());
>         emitter.setServiceElementName(className);
>         emitter.setPortTypeName(className + "PortType");
>         emitter.setServicePortName(className + "Port");
>         emitter.setIntfNamespace(WEB_SERVICE_PROTOCOL + packageName +
> ".p2plus.apag.com");
>         emitter.setUseInheritedMethods(true);
>         emitter.setLocationUrl(WEB_SERVICE_PROTOCOL +
> InetAddress.getLocalHost().getHostName() + ":" + serverPort + 
> "/" + packageName
> + "/" + className + ".jws");
>         xml = emitter.emitToString(Emitter.MODE_ALL);
> 
> 
> Any statements please?
> 
> Thanks!
> 
> Regards,
> Thomas
> 
> 
> 
> 
> 

Mime
View raw message