Proceedings of the ACM SIGPLAN 1993 Conference on Programming Language Design and Implementation 1993
DOI: 10.1145/155090.155107
|View full text |Cite
|
Sign up to set email alerts
|

Improving the cache locality of memory allocation

Abstract: The allocation and disposal of memory is a ubiquitous operation in most programs. Rarely do programmers concern themselves with details of memory allocators; most assume that memory allocators provided by the system perform well. This paper presents a performance evaluation of the reference locality of dynamic storage allocation algorithms based on trace-driven simulation of five large allocation-intensive C programs. In this paper, we show how the design of a memory allocator can significantly affect the refe… Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
1
1
1
1

Citation Types

0
16
0
1

Year Published

1993
1993
2016
2016

Publication Types

Select...
4
3
2

Relationship

1
8

Authors

Journals

citations
Cited by 63 publications
(19 citation statements)
references
References 15 publications
(6 reference statements)
0
16
0
1
Order By: Relevance
“…Prolangs [Ryder et al, 2001], PtrDist [Zhao et al, 2005] and MallocBench [Grunwald et al, 1993]. As we show in Chapter 4, our analysis is linear on the size of programs.…”
Section: Summary Of Experimental Resultsmentioning
confidence: 85%
“…Prolangs [Ryder et al, 2001], PtrDist [Zhao et al, 2005] and MallocBench [Grunwald et al, 1993]. As we show in Chapter 4, our analysis is linear on the size of programs.…”
Section: Summary Of Experimental Resultsmentioning
confidence: 85%
“…We use the single-threaded applications from Wilson and Johnstone, and Grunwald and Zorn [12,19]: espresso, an optimizer for programmable logic arrays; Ghostscript, a PostScript interpreter; LRUsim, a locality analyzer, and p2c, a Pascal-to-C translator. We chose these programs because they are allocation-intensive and have single-threaded benchmarks [12,19] Pascal-to-C translator multithreaded benchmarks threadtest each thread repeatedly allocates and then deallocates 100,000/P objects shbench [26] each thread allocates and randomly frees random-sized objects Larson [22] simulates a server: each thread allocates and deallocates objects, and then transfers some objects to other threads to be freed active-false tests active false sharing avoidance passive-false tests passive false sharing avoidance BEMengine [7] object-oriented PDE solver Barnes-Hut [1, 2] n-body particle solver Table 1: Single-and multithreaded benchmarks used in this paper.…”
Section: Resultsmentioning
confidence: 99%
“…If there is not, Hoard checks the global heap (heap 0) for a superblock. If there is one, Hoard transfers it to heap i, adding the number of bytes in use in the superblock s.u to ui, and the total number of bytes in the superblock S to ai (lines [10][11][12][13][14]. If there are no superblocks in either heap i or heap 0, Hoard allocates a new superblock and inserts it into heap i (line 8).…”
Section: Allocationmentioning
confidence: 99%
“…We use the latter suite of benchmarks both because they are widely used in memory management studies [3,19,22], and because their high allocation-intensity stresses memory management performance. For all experiments, we fix Exterminator's heap multiplier (value of M) at 2.…”
Section: Exterminator Runtime Overheadmentioning
confidence: 99%