gpt4 book ai didi

java - 字节码生成的访问对象与 GenerationMethodAccessor

转载 作者:太空宇宙 更新时间:2023-11-04 06:38:09 25 4
gpt4 key购买 nike

我有 bean util 库,当然我们缓存属性的 Method/Fields 。阅读和写作都是通过反射(reflection)进行的。

有一个想法是跳过反射,并为每个方法/字段字节码生成一个直接调用目标的简单对象。例如,如果我们有 setFoo(String s) 方法,我们将调用此生成类的 set(String s) 方法,该方法在内部调用 setFoo()。同样,我们将反射调用替换为运行时生成的直接调用。

我知道 Java 使用 GenelatedMethodAccessor 做了类似的事情。但它的缓存可能会受到 JVM 参数的限制。

有谁知道考虑到性能,滚动我的实现是否有意义?一方面,这听起来不错,但另一方面,将创建许多新类 - 并填充永久代空间。

在这个主题上有什么经验吗?

最佳答案

您正在尝试重新发明 cglib 的 FastMethod
事实上,Reflection 一点也不慢。看 https://stackoverflow.com/a/23580143/3448419

反射每秒可以执行超过 50,000,000 次调用。它不太可能成为瓶颈。

关于java - 字节码生成的访问对象与 GenerationMethodAccessor,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25056432/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com