hprose / hprose-java

Hprose is a cross-language RPC. This project is Hprose 2.0 for Java
MIT License
550 stars 187 forks source link

hprose.io.unserialize.Reader.unserialize占用CPU奇高 #44

Closed gwenson closed 6 years ago

gwenson commented 6 years ago

我是这样使用的:

HproseFormatter.unserialize(value,List.class);

是不是我使用方法不对? learning

andot commented 6 years ago

PropertyAccessor.unserialize 是通过反射调用属性上 setter 方法来设置属性的。反射操作比其他操作占用更多的 CPU 时间是正常的,反射调用本来就比普通调用要慢几十到几百倍。

这部分虽然可以通过生成字节码的方式来优化,但是这需要依赖第三方的包,而且不支持 Android,所以目前这部分没有使用生成字节码的方式优化。

gwenson commented 6 years ago

噢,谢谢。