jac*_*ope 3 java performance instanceof
现在我正在编写一个ORM框架,非常关心性能.
在本框架中,我必须使用instanceof和Class.isAssignableFrom检查类型兼容性.
所以我对instanceof和的表现有点怀疑Class.isAssignableFrom
究竟有多缓慢?
instanceof应该更快,它是一个字节码操作
public static void main(String[] args) {
boolean res1 = args instanceof Object;
Run Code Online (Sandbox Code Playgroud)
字节码
ALOAD 0
INSTANCEOF java/lang/Object
ISTORE 1
Run Code Online (Sandbox Code Playgroud)
相比于
boolean res2 = Object.class.isAssignableFrom(args.getClass());
Run Code Online (Sandbox Code Playgroud)
字节码
LDC Ljava/lang/Object;.class
ALOAD 0
INVOKEVIRTUAL java/lang/Object.getClass()Ljava/lang/Class;
INVOKEVIRTUAL java/lang/Class.isAssignableFrom(Ljava/lang/Class;)Z
ISTORE 2
Run Code Online (Sandbox Code Playgroud)