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 > > > > > > > > > > >
GetParamNamesBench2.java
Description: GetParamNamesBench2.java
