This Article 
 Bibliographic References 
 Add to: 
Refactoring for Data Locality
February 2009 (vol. 42 no. 2)
pp. 62-71
Kristof Beyls, Tele Atlas
Erik H. D'Hollander, Ghent University
Suggestions for locality optimizations (SLO), a cache profiling tool, analyzes runtime reuse paths to find the root causes of poor data locality, and suggests the most promising code optimizations. Refactoring using the hints of the SLO analyzer doubles the average execution speed of several SPEC2000 benchmark programs.

1. M. Fowler, Refactoring: Improving the Design of Existing Code, Addison-Wesley, 2000.
2. M. Atkins and R. Subramaniam, "PC Software Performance Tuning," Computer, Aug. 1996, pp. 47-54.
3. A.R. Lebeck and D.A. Wood, "Cache Profiling and the SPEC Benchmarks: A Case Study," Computer, Oct. 1994, pp. 15-26.
4. N. Nethercote and J. Seward, "Valgrind: A Program Supervision Framework," Electronic Notes in Theoretical Computer Science, Oct. 2003, pp. 1-23.
5. C. Ding and Y. Zhong, "Predicting Whole-Program Locality through Reuse Distance Analysis," Proc. Conf. Programming Language Design and Implementation, ACM Press, 2003, pp. 245-257.
6. K. Beyls, E.H. D'Hollander, and F. Vandeputte, "RDVIS: A Tool That Visualizes the Causes of Low Locality and Hints at Program Optimizations," Proc. Int'l Conf. Computational Science, LNCS 3515, Springer, 2005, pp. 166-173.
7. K. Beyls and E.H. D'Hollander, "Discovery of Locality-Improving Refactorings by Reuse Path Analysis," Proc Int'l Conf. High Performance Computing and Comm., LNCS 4208, Springer, 2006, pp. 220-229.
8. J.L. Henning, "SPEC CPU2000: Measuring CPU Performance in a New Millennium," Computer, July 2000, pp. 28-35.

Index Terms:
software engineering, development tools, programming languages, processors, operating systems, visualization, simulation, computing methodologies, compilers, benchmarks, SPEC2000 benchmarks
Kristof Beyls, Erik H. D'Hollander, "Refactoring for Data Locality," Computer, vol. 42, no. 2, pp. 62-71, Feb. 2009, doi:10.1109/MC.2009.57
Usage of this product signifies your acceptance of the Terms of Use.