Java反射并没有想象的慢
当阅读Java反射时,很难知道反射有多慢。也许我们大多数人都见过将反射与直接方法分派、lambdas等进行比较的基准测试,而反射通常损失惨重。然而,前几天,我遇到了这样一种情况:反思的表现远远超过了其他选择。 在过去的几个月里,我把大部分空闲时间都花在了游戏开发的脚本语言/解释器上。语言是动态类型化的,并编译成自定义字节码格式,由Java编写的解释器运行。解释器的最初设计使用了一个“catch a
当阅读Java反射时,很难知道反射有多慢。也许我们大多数人都见过将反射与直接方法分派、lambdas等进行比较的基准测试,而反射通常损失惨重。然而,前几天,我遇到了这样一种情况:反思的表现远远超过了其他选择。 在过去的几个月里,我把大部分空闲时间都花在了游戏开发的脚本语言/解释器上。语言是动态类型化的,并编译成自定义字节码格式,由Java编写的解释器运行。解释器的最初设计使用了一个“catch a
在编译时不知道类的情况下,从Java类读取getter的最快方法是什么?Java框架经常这样做——很多。而且,它可以直接影响他们的表现。所以,让我们对不同的方法进行基准测试,比如反射、方法句柄和代码生成。 反射用例 假设我们有一个简单的Person类,它有一个名称和地址: public class Person { ... public String getName() {...} public