24、AspectJ 通知的延迟绑定实现分析与性能评估

AspectJ 通知的延迟绑定实现分析与性能评估

1. 基准测试分析

在对 AspectJ 通知的延迟绑定实现进行评估时,进行了多组基准测试。静态启动基准测试和宏观基准测试显示,仅存在延迟绑定通知编织实现并不会减慢纯 Java 程序的运行速度。这是因为在没有切面存在时,大部分编织基础设施可以被短路。

当程序中存在可能应用于任何字节码的通知时,扫描字节码会影响类加载速度。特别是 ajc ltw 受影响程度比其他实现更大。微观测量类加载时,“500MethodsExec” 和 “1000MethodsLoaded” 结果显示,VM 内编织相比 ajc ltw 有显著性能提升(约 6.8 秒或 4.7 倍),方法级编织相比类级编织也有一定提升(约 0.8 - 1.5 秒或 1.7 - 6.7 倍)。

特殊通知执行基准测试结果表明,解释器编织器和 VM 内字节码编织器在启动时间上没有统计学上的显著差异。但解释器调度在重复执行每个基准测试时斜率明显更高,成本也更高。不过在完整的混合实现中,由于频繁执行的方法会被 JIT 编译器重新编译,这种开销可能会最小化。

综合来看,VM 外部实现虽然在某些情况下是必要的,但在执行通知延迟绑定编织时存在固有的性能限制。这些限制源于 VM 外部编织器必须复制其无法在 VM 中访问的结构,并且只能进行类级粒度的编织。

基准测试类型 性能表现
静态启动和宏观基准测试 无切面时不影响纯 Java 程序速度;有通知时影响
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值