使用asm时遇到的stack too large问题

1. 问题描述:

使用asm统计项目的热点数据与方法,测速时,个别方法出现stack too large错误,如:

method: setadPageId signature: (Ljava/lang/Long;)V) Stack size too large

如果第一次遇到这个问题可能会以为是jvm的栈空间设置的太小,想通过-xss设置一个更大的值,其实不然,此stack非彼栈。那这个错误是指那里的栈空间小了?

 

先看一个类:

public void[......]

Read more

Posted in J2EE | Tagged | Leave a comment

Asm字节码操纵:Class文件处理流程

有了java.lang.instrument的支持(Java性能监控系列——java.lang.instrument使用),我们可以在运行时修改类的字节码,配合Asm这一操作字节码的利器,可以很容易进行一些访问、测速、统计之类的工作。

 

Asm的典型使用方式如:

public byte [] transform(ClassLoader loader, String className,
                  Class<?>[......]

Read more

Posted in J2EE | Tagged , | Leave a comment

Java那点事:反射机制杂谈

        Java的反射机制估计是所有Javaer耳熟能详的东西,记得某次我同学去面试腾讯,面的是Java,后来他进去了,不过是C++,是C++……,我当时还很疑虑,问:“你好像Java用得更多哈?”,同学:“面Java被鄙视了,问的反射这些都不会,”,我:“……”
        根据百度百科:Java反射机制是在运行状态中,对于任意一个类,能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法和属性;这种动态获取的信息以及动态调用对象的方法的功能称为Java语言[......]

Read more

Posted in Java | Tagged , | 2 Comments