Write barrier removal by static analysis

被引:5
|
作者
Zee, K [1 ]
Rinard, M [1 ]
机构
[1] MIT, Comp Sci Lab, Cambridge, MA 02139 USA
基金
美国国家科学基金会;
关键词
algorithms; performance; experimentation; program analysis; pointer analysis; generational garbage collection; write barriers;
D O I
10.1145/583854.582439
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
We present a new analysis for removing unnecessary write barriers in programs that use generational garbage collection. To our knowledge, this is the first static program analysis for this purpose. Our algorithm uses a pointer analysis to locate assignments that always create a reference from a younger object to an older object, then transforms the program to remove the write barriers normally associated with such assignments. We have implemented two transformations that reorder object allocations; these transformations can significantly increase the effectiveness of our write barrier removal algorithm. Our base technique assumes that the collector promotes objects in age order. We have developed an extension that enables the optimistic removal of write barriers, with the collector lazily adding each newly promoted object into a remembered set of objects whenever the compiler may have removed write barriers involving the object at statements that have yet to execute. This mechanism enables the application of our technique to virtually any memory management system that uses write barriers to enable generational garbage collection. Results from our implemented system show that our technique can remove substantial numbers of write barriers from the majority of the programs in our benchmark set, producing modest performance improvements of up to 6% of the overall execution time. Moreover, by dynamically instrumenting the executable, we are able to show that for six of our nine benchmark programs, our analysis is close to optimal in the sense that it removes the write barriers for almost all assignments that do not, in the observed execution, create a reference from an older object to a younger object. Finally, our results show that the overhead of our optimistic extension is negligible.
引用
收藏
页码:191 / 210
页数:20
相关论文
共 50 条
  • [41] Toward Full Elasticity in Distributed Static Analysis: The Case of Callgraph Analysis
    Garbervetsky, Diego
    Zoppi, Edgardo
    Livshits, Benjamin
    ESEC/FSE 2017: PROCEEDINGS OF THE 2017 11TH JOINT MEETING ON FOUNDATIONS OF SOFTWARE ENGINEERING, 2017, : 442 - 453
  • [42] Sodium Alginate/Modified Bentonite Composite Bead Adsorptive Removal of Norfloxacin: Static and Dynamic Adsorption
    Zhou, Jun
    Sun, Qianyu
    POLYMERS, 2022, 14 (19)
  • [43] A comparison of building energy optimization problems and mathematical test functions using static fitness landscape analysis
    Waibel, Christoph
    Mavromatidis, Georgios
    Evins, Ralph
    Carmeliet, Jan
    JOURNAL OF BUILDING PERFORMANCE SIMULATION, 2019, 12 (06) : 789 - 811
  • [44] Removal of nitrates from spiked clay soils by coupling electrokinetic and permeable reactive barrier technologies
    Garcia, Yoana
    Ruiz, Clara
    Mena, Esperanza
    Villasenor, Jose
    Canizares, Pablo
    Rodrigo, Manuel A.
    JOURNAL OF CHEMICAL TECHNOLOGY AND BIOTECHNOLOGY, 2015, 90 (09) : 1719 - 1726
  • [45] PMAF: An Algebraic Framework for Static Analysis of Probabilistic Programs
    Wang, Di
    Hoffmann, Jan
    Reps, Thomas
    PROCEEDINGS OF THE 39TH ACM SIGPLAN CONFERENCE ON PROGRAMMING LANGUAGE DESIGN AND IMPLEMENTATION, PLDI 2018, 2018, : 513 - 528
  • [46] srcPtr: A Framework for Implementing Static Pointer Analysis Approaches
    Zyrianov, Vlas
    Newman, Christian D.
    Guarnera, Drew T.
    Collard, Michael L.
    Maletic, Jonathan, I
    2019 IEEE/ACM 27TH INTERNATIONAL CONFERENCE ON PROGRAM COMPREHENSION (ICPC 2019), 2019, : 144 - 147
  • [47] Dynamic Filtering and Prioritization of Static Code Analysis Alerts
    Yuksel, Ulas
    Sozer, Hasan
    2021 IEEE INTERNATIONAL SYMPOSIUM ON SOFTWARE RELIABILITY ENGINEERING WORKSHOPS (ISSREW 2021), 2021, : 294 - 295
  • [48] A generic approach to the static analysis of concurrent programs with procedures
    Bouajjani, A
    Esparza, J
    Touili, T
    ACM SIGPLAN NOTICES, 2003, 38 (01) : 62 - 73
  • [49] Static timing analysis of shared caches for multicore processors
    Zhang, W. (wzhang4@vcu.edu), 1600, Korean Institute of Information Scientists and Engineers (06): : 267 - 278
  • [50] Precise static type analysis for object oriented programs
    Kumar, Rajeev
    Chakraborty, Soham S.
    ACM SIGPLAN NOTICES, 2007, 42 (02) : 17 - 26