Kabir Khan [http://community.jboss.org/people/kabir.khan%40jboss.com] replied 
to the discussion

"JBoss Reflect Performance Javassist vs Introspection"

To view the discussion, visit: http://community.jboss.org/message/542552#542552

--------------------------------------------------------------
> Kabir Khan wrote:
> 
> I have done some performance measurements where I compare the times taken 
> creating the following class, using javassist.bytecode.* and asm
> 
>  
> *public* *class* JavassistMethod1 *implements* JavassistMethod
> { 
>   *public* Object invoke(Object target, Object[] args) *throws* Throwable
>   {     
>       *return* 
> Integer.valueOf(((SomeClass)target).someMethod(((Integer)args[0]).intValue(), 
> (String)args[1])).intValue();
>   }
> } 
> 
> 
>  
> 
>  
> 
> Which would be used to call the method:
> 
>     *int* someMethod(*int* i, String);
> 
> 
>  
> 
>  
> 
> The basic flow for what I do for both approaches is the same, whereby I do 
> the following lots of times to generate lots of similar classes:
> 
>  
> 
>  
> 
> A) - Create class structure
> 
> B) - Add default constructor with body to call super
> 
> C) - Add invoke method
> 
> C1) - Add invoke method body
> 
> D) - Convert class structure from A) into byte[]
> 
> E) - Define java.lang.Class by calling ClassLoader.defineClass()
> 
> F) - Call Class.newInstance()
Chiba has done some great work on creating a new API for Javassist tailor made 
to create new classes. Taking the defining of the class and instantiating it 
out of the equation (since that is JVM stuff out of our control), so we do A-D 
so we have the bytes ready to create the class the times are now for creating 
20000 JavassistMethod implementations


|| *ASM* || *Javassist ClassFile* || JavassistClassFileWriter ||
| 476 | 1030 | 356 |
| 613 | 1056 | 269 |
| 483 | 1076 | 309 |
| 464 | 1001 | 357 |
| 383 | 1186 | 315 |


I have attached the modified benchmark

--------------------------------------------------------------

Reply to this message by going to Community
[http://community.jboss.org/message/542552#542552]

Start a new discussion in JBoss Microcontainer Development at Community
[http://community.jboss.org/choose-container!input.jspa?contentType=1&containerType=14&container=2115]

_______________________________________________
jboss-user mailing list
[email protected]
https://lists.jboss.org/mailman/listinfo/jboss-user

Reply via email to