AspectJ建议的延迟绑定技术解析
1. 延迟绑定建议的VM支持方法
在软件开发中,静态编织时需要在执行前扫描并可能重写所有程序类,对于大型程序,即使是简单的程序更改,也可能导致编辑 - 运行 - 测试周期时间过长。而VM支持的建议延迟绑定方法有以下几种:
- 动态建议调度:通过与VM的解释器集成实现。
- 加载时字节码重写:可通过与类加载器集成完成,有VM外部和VM内部两种方式。
- 代码生成:与即时(JIT)编译器集成实现。
- 运行时字节码重写。
下面是这些方法的简单对比表格:
| 方法 | 实现方式 | 特点 |
| — | — | — |
| 动态建议调度 | 与VM解释器集成 | 直接在连接点执行时检查适用建议 |
| 加载时字节码重写 | 与类加载器集成 | 类加载时进行重写,有内外之分 |
| 代码生成 | 与JIT编译器集成 | 编译时生成执行建议的指令 |
| 运行时字节码重写 | - | 运行时进行字节码重写 |
其中,加载时字节码重写与传统静态方法功能类似,但在类被VM加载时进行重写,会产生一定成本。代码生成基于静态程序文本,识别连接点阴影,编译时按需生成执行建议的指令。解释器基建议调度则直接在连接点操作,解释器执行连接点时检查适用建议并执行。
2. VMs与启动性能
VM的启动性能比稳态性能更难描述。稳态性能通常通过重复运行程序直到每次运行的执行时间稳定来衡量,此时加载和JIT编译的成本在后续运行中被消除。而启动性能的测量需要考虑这些成本,且在程序执行过程中没有明显的启动完成点。
以下是Ec
超级会员免费看
订阅专栏 解锁全文
808

被折叠的 条评论
为什么被折叠?



