【24h】

Removing unnecessary synchronization in Java

机译:删除Java中不必要的同步

获取原文

摘要

Java programs perform many synchronization operations on data structures. Some of these synchronizations are unnecessary; in particular, if an object is reachable only by a single thread, concurrent access is impossible and no synchronization is needed. We describe an interprocedural, flow- and context-insensitive dataflow analysis that finds such situations. A global optimizing transformation then eliminates synchronizations on these objects. For every program in our suite of ten Java benchmarks consisting of SPECjvm9S and others, our system optimizes over 90% of the alias sets containing at least one synchronized object. As a result, the dynamic frequency of synchronizations is reduced by up to 99%. For two benchmarks that perform synchronizations very frequently, this optimization leads to speedups of 36% and 20%.
机译:Java程序在数据结构上执行许多同步操作。其中一些同步是不必要的;特别地,如果仅通过单个线程到达对象,则不可能访问并发访问是不可能的,并且不需要同步。我们描述了发现此类情况的过分性,流动和上下文不敏感的数据流分析。然后,全局优化转换,然后消除这些对象上的同步。对于我们的10个java基准组成的每个程序,由specjvm9s等组成,我们的系统优化了包含至少一个同步对象的别名集中的90%以上。结果,同步的动态频率降低了高达99%。对于经常执行同步的两个基准,这种优化导致加速度为36%和20%。

著录项

相似文献

  • 外文文献
  • 中文文献
  • 专利
获取原文

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号