HI!

You can optimize tt-bytecode by caching the BCClass in the calling method (please find 
attached the modified benchmark program), but still bcel is twice as fast.

Regards,
Thomas



> -----Original Message-----
> From: Thomas B�rkel 
> Sent: Mittwoch, 27. Februar 2002 17:41
> To: [EMAIL PROTECTED]
> Subject: RE: Performance of WSDL generation (benchmark 
> program included)
> 
> 
> 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:[EMAIL PROTECTED]]
> > Sent: Dienstag, 26. Februar 2002 14:13
> > To: [EMAIL PROTECTED]
> > 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" <[EMAIL PROTECTED]>
> > To: "Axis User Mailinglist" <[EMAIL PROTECTED]>
> > 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
> > 
> > 
> > 
> > 
> > 
> 

Attachment: GetParamNamesBench2.java
Description: GetParamNamesBench2.java

Reply via email to