属性访问----C++快于Java
JVM访问对象属性时(字节码OP_IGET_/OP_SGET_),会先通过属性名字字符串去查ClassObject元数据中属性的偏移(通过属性名字符串找到ClassObject中Field,再取保存在Field中属性在对象中的偏移,最后访问属性),这是一个比较低效的步骤。
C++在编译的时候就已经计算出属性的偏移,访问时直接进行。
方法/函数调用----C++快于Java
Java调用方法时(字节码OP_INVOKE_),先通过方法名字字符串去查ClassObject元数据中方法Method(通过方法名字符串找到ClassObject中Method,再取保存在Method)
C++函数比Java方法执行效率高。

本文探讨了C++与Java在属性访问及方法调用上的性能差异。在C++中,属性访问和方法调用的偏移量在编译时即已确定,而Java则需在运行时通过字符串查找相应偏移量。
5080

被折叠的 条评论
为什么被折叠?



