gpt4 book ai didi

java - 使用回调过滤器降低 CGLIB 性能

转载 作者:行者123 更新时间:2023-12-01 05:58:28 28 4
gpt4 key购买 nike

当尝试将 CGLIB 与回调过滤器(在数万个对象上)一起使用时,我注意到速度很糟糕,但我无法找到有关优化 CGLIB 的任何信息。

对于搜索/列表界面,系统从优化的查询中加载多个属性,并使用这些属性填充域树。对于所有其他属性,LazyLoader 正在加载完整的对象。这个想法是让搜索/列表加载使用的基本属性,同时不丢失域模型类。

基本示例

String name = rst.getString(1);

Enhancer enhancer = new Enchancer();
enhancer.setSuperclass(Type.class);
enhancer.setCallbackFilter(new CallbackFilter(){
public int method(Method method){
if("getName".equals(method.getName()){
return 1;
}
return 0;
}
});
enhancer.setCallbacks(new Callback[]{
new LazyLoader(){...}
new FixedValueImpl(name);
});
return (Type)enhancer.create()

最佳答案

看来,如果我将 CallbackFilter 设置为实例变量而不是匿名内部类,速度会提高。

private CallbackFilter callbackFilter = new CallbackFilter(){...};

...

private Type createType(ResultSet rst){
String name = rst.getString(1);

Enhancer enhancer = new Enchancer();
enhancer.setSuperclass(Type.class);
enhancer.setCallbackFilter(this.callbackFilter);
enhancer.setCallbacks(new Callback[]{
new LazyLoader(){...}
new FixedValueImpl(name);
});
return (Type)enhancer.create()
}

关于java - 使用回调过滤器降低 CGLIB 性能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2043814/

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