5、使用静态分析降低软件事务内存(STM)开销

使用静态分析降低软件事务内存(STM)开销

1. 研究贡献概述

本研究主要有以下贡献:
- 实现了一组常见的特定于软件事务内存(STM)的分析和优化。
- 提出并实现了一组新的分析和优化方法,以减少STM插桩的开销。
- 通过测量表明,所建议的优化可以显著提高性能,在某些工作负载下加速比可达29 - 50%。

2. 背景:基于Java的STM框架Deuce

Deuce是一个可插拔的STM框架,允许不同的STM协议实现。开发者只需实现Context接口,并为各种STM库函数提供自己的实现。这些库函数规定了读取字段、写入字段、提交事务和回滚事务时应采取的操作。

Deuce具有非侵入性,它不修改JVM或Java语言,也不需要重新编译源代码来进行插桩。它通过引入新的 @Atomic 注解来工作,带有该注解的Java方法会被替换为一个重试循环,尝试执行并提交该方法的事务版本。所有方法都会被复制,事务版本的方法与原始方法类似,只是所有字段和数组访问都被替换为对Context接口的调用,所有方法调用也会被重写,以调用事务版本的方法。

Deuce有在线和离线两种工作模式:
- 在线模式 :程序插桩的整个过程在运行时进行。通过向JVM指定参数,将Java代理附加到正在运行的程序上。在类加载到内存之前,Deuce代理会对程序进行内存中的转换。Deuce使用ASM(一个通用的字节码操作框架)来读取和重写类。
- 离线模式 :为避免在线模式的运行时开销,Deuce提供离线模式,直接对编译后的

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值