cramm: virtual memory support for garbage-collected applications
DESCRIPTION
This talk presents operating support that can dramatically improve the performance of garbage-collected applications. It describes a virtual memory manager that, combined with a collector-neutral heap sizing algorithm, ensures that garbage-collected applications run as fast as possible while avoiding paging.TRANSCRIPT
![Page 1: CRAMM: Virtual Memory Support for Garbage-Collected Applications](https://reader037.vdocuments.site/reader037/viewer/2022102900/55392f894a79590a7f8b48ff/html5/thumbnails/1.jpg)
UUNIVERSITY OF NIVERSITY OF MMASSACHUSETTSASSACHUSETTS A AMHERST • MHERST • Department of Computer Science Department of Computer Science
CRAMM: Virtual Memory Support for Garbage-Collected
Applications
Ting Yang, Emery Berger, Scott Kaplan†, Eliot Moss
Department of Computer Science Dept. of Math and Computer Science†
University of Massachusetts Amherst College
{tingy,emery,moss}@cs.umass.edu [email protected]
![Page 2: CRAMM: Virtual Memory Support for Garbage-Collected Applications](https://reader037.vdocuments.site/reader037/viewer/2022102900/55392f894a79590a7f8b48ff/html5/thumbnails/2.jpg)
UUNIVERSITY OF NIVERSITY OF MMASSACHUSETTSASSACHUSETTS A AMHERST • MHERST • Department of Computer Science Department of Computer Science 2
Motivation: Heap Size Matters
GC languages Java, C#, Python, Ruby, etc. Increasingly popular
Heap size critical Too large:
Paging (10-100x slower) Too small:
Excessive # collectionshurts throughput
Heap Size (120MB)
Memory (100MB)
JVM
VM/OS Disk
Heap Size (60MB)
Memory (100MB)
![Page 3: CRAMM: Virtual Memory Support for Garbage-Collected Applications](https://reader037.vdocuments.site/reader037/viewer/2022102900/55392f894a79590a7f8b48ff/html5/thumbnails/3.jpg)
UUNIVERSITY OF NIVERSITY OF MMASSACHUSETTSASSACHUSETTS A AMHERST • MHERST • Department of Computer Science Department of Computer Science 3
What is the right heap size?
Find the sweet spot: Large enough to minimize collections Small enough to avoid paging BUT: sweet spot changes constantly
(multiprogramming)
CRAMM: Cooperative Robust Automatic Memory Management
Goal: through cooperation with OS & GC,keep garbage-collected applications
running at their sweet spot
![Page 4: CRAMM: Virtual Memory Support for Garbage-Collected Applications](https://reader037.vdocuments.site/reader037/viewer/2022102900/55392f894a79590a7f8b48ff/html5/thumbnails/4.jpg)
UUNIVERSITY OF NIVERSITY OF MMASSACHUSETTSASSACHUSETTS A AMHERST • MHERST • Department of Computer Science Department of Computer Science 4
CRAMM Overview
Cooperative approach: Collector-neutral heap sizing model
(GC) suitable for broad range of collectors
Statistics-gathering VM (OS)
Automatically resizes heap in response to memory pressure Grows to maximize space utilization Shrinks to eliminate paging
Improves performance by up to 20x Overhead on non-GC apps: 1-2.5%
![Page 5: CRAMM: Virtual Memory Support for Garbage-Collected Applications](https://reader037.vdocuments.site/reader037/viewer/2022102900/55392f894a79590a7f8b48ff/html5/thumbnails/5.jpg)
UUNIVERSITY OF NIVERSITY OF MMASSACHUSETTSASSACHUSETTS A AMHERST • MHERST • Department of Computer Science Department of Computer Science 5
Outline
Motivation CRAMM overview Automatic heap sizing Information gathering Experimental results Conclusion
![Page 6: CRAMM: Virtual Memory Support for Garbage-Collected Applications](https://reader037.vdocuments.site/reader037/viewer/2022102900/55392f894a79590a7f8b48ff/html5/thumbnails/6.jpg)
UUNIVERSITY OF NIVERSITY OF MMASSACHUSETTSASSACHUSETTS A AMHERST • MHERST • Department of Computer Science Department of Computer Science
GC: How do we choose a good
heap size?
![Page 7: CRAMM: Virtual Memory Support for Garbage-Collected Applications](https://reader037.vdocuments.site/reader037/viewer/2022102900/55392f894a79590a7f8b48ff/html5/thumbnails/7.jpg)
UUNIVERSITY OF NIVERSITY OF MMASSACHUSETTSASSACHUSETTS A AMHERST • MHERST • Department of Computer Science Department of Computer Science 7
GC: Collector-neutral model
SemiSpace (copying)
a ≈ ½b ≈ JVM, code + app’s live
size
heapUtilFactor: constant dependent
on GC algorithm
Fixed overhead:Libraries, codes,
copying (app’s live size)
![Page 8: CRAMM: Virtual Memory Support for Garbage-Collected Applications](https://reader037.vdocuments.site/reader037/viewer/2022102900/55392f894a79590a7f8b48ff/html5/thumbnails/8.jpg)
UUNIVERSITY OF NIVERSITY OF MMASSACHUSETTSASSACHUSETTS A AMHERST • MHERST • Department of Computer Science Department of Computer Science 8
GC: a collector-neutral WSS model
SemiSpace (copying)
MS (non-copying)
a ≈ ½b ≈ JVM, code + app’s live
size
a ≈ 1b ≈ JVM, code
heapUtilFactor: constant dependent
on GC algorithm
Fixed overhead:Libraries, codes,
copying (app’s live size)
![Page 9: CRAMM: Virtual Memory Support for Garbage-Collected Applications](https://reader037.vdocuments.site/reader037/viewer/2022102900/55392f894a79590a7f8b48ff/html5/thumbnails/9.jpg)
UUNIVERSITY OF NIVERSITY OF MMASSACHUSETTSASSACHUSETTS A AMHERST • MHERST • Department of Computer Science Department of Computer Science 9
GC: Selecting new heap size
GC: heapUtilFactor (a) & cur_heapSize
VMM: WSS & available memory
Set heap size so that working setjust fits in current available memory
![Page 10: CRAMM: Virtual Memory Support for Garbage-Collected Applications](https://reader037.vdocuments.site/reader037/viewer/2022102900/55392f894a79590a7f8b48ff/html5/thumbnails/10.jpg)
UUNIVERSITY OF NIVERSITY OF MMASSACHUSETTSASSACHUSETTS A AMHERST • MHERST • Department of Computer Science Department of Computer Science 10
Heap Size vs. Execution time, WSS
1/x shape
Y=0.99*X + 32.56
Linear shape
![Page 11: CRAMM: Virtual Memory Support for Garbage-Collected Applications](https://reader037.vdocuments.site/reader037/viewer/2022102900/55392f894a79590a7f8b48ff/html5/thumbnails/11.jpg)
UUNIVERSITY OF NIVERSITY OF MMASSACHUSETTSASSACHUSETTS A AMHERST • MHERST • Department of Computer Science Department of Computer Science
VM: How do we collect information
to support heap size selection?
(with low overhead)
WSS, Available Memory
![Page 12: CRAMM: Virtual Memory Support for Garbage-Collected Applications](https://reader037.vdocuments.site/reader037/viewer/2022102900/55392f894a79590a7f8b48ff/html5/thumbnails/12.jpg)
UUNIVERSITY OF NIVERSITY OF MMASSACHUSETTSASSACHUSETTS A AMHERST • MHERST • Department of Computer Science Department of Computer Science 12
d e f g h i j k l m n c k l m ncb c d e f g h i j k l m n c k l m n
aba abc defghijklmn abc defghijklm n abdefghijckl n m abc defghijk mn l abc defghijlmn k abdefghijklmn c
4
n
321 1
Calculating WSS w.r.t 5%Memory reference sequence
LRU Queue
Pages in Least Recently Used order
Hit Histogram
Fault Curve
0000000000 0000
m n
1 14
l m nk l m nc k l m na b c d e f g h i j k l m n c k l m n
5
1
1 14114
i
i ihistfault 1
Associated with each LRU position
pages
faults
![Page 13: CRAMM: Virtual Memory Support for Garbage-Collected Applications](https://reader037.vdocuments.site/reader037/viewer/2022102900/55392f894a79590a7f8b48ff/html5/thumbnails/13.jpg)
UUNIVERSITY OF NIVERSITY OF MMASSACHUSETTSASSACHUSETTS A AMHERST • MHERST • Department of Computer Science Department of Computer Science 13
Computing hit histogram
Not possible in standard VM: Global LRU queues No per process/file information or control
Difficult to estimate app’s WSS / available memory
CRAMM VM: Per process/file page management:
Page list: Active, Inactive, Evicted Add & maintain histogram
![Page 14: CRAMM: Virtual Memory Support for Garbage-Collected Applications](https://reader037.vdocuments.site/reader037/viewer/2022102900/55392f894a79590a7f8b48ff/html5/thumbnails/14.jpg)
UUNIVERSITY OF NIVERSITY OF MMASSACHUSETTSASSACHUSETTS A AMHERST • MHERST • Department of Computer Science Department of Computer Science 14
Managing pages for a process
Active (CLOCK) Inactive (LRU) Evicted (LRU)
Major fault
EvictedRefill & Adjustment
Minor fault
Pages protected by turning off permissions (minor fault)
Pages evicted to disk. (major fault)
Header
Page Des
AVL node
HistogramPages
faults
![Page 15: CRAMM: Virtual Memory Support for Garbage-Collected Applications](https://reader037.vdocuments.site/reader037/viewer/2022102900/55392f894a79590a7f8b48ff/html5/thumbnails/15.jpg)
UUNIVERSITY OF NIVERSITY OF MMASSACHUSETTSASSACHUSETTS A AMHERST • MHERST • Department of Computer Science Department of Computer Science 15
Controlling overhead
Buffer
Active (CLOCK) Inactive (LRU) Evicted (LRU)
Pages protected by turning off permissions (minor fault)
Pages evicted to disk. (major fault)
Header
Page Des
AVL node
HistogramPages
faults
control the boundary: 1% of execution time
![Page 16: CRAMM: Virtual Memory Support for Garbage-Collected Applications](https://reader037.vdocuments.site/reader037/viewer/2022102900/55392f894a79590a7f8b48ff/html5/thumbnails/16.jpg)
UUNIVERSITY OF NIVERSITY OF MMASSACHUSETTSASSACHUSETTS A AMHERST • MHERST • Department of Computer Science Department of Computer Science 16
Calculating available memory
What’s “available”? Page cache
Are pages from closed files “free”? Policy decision: yes
Easy to distinguish in CRAMM – on separate list
Available Memory = resident application pages + free pages in the system + pages from closed files
![Page 17: CRAMM: Virtual Memory Support for Garbage-Collected Applications](https://reader037.vdocuments.site/reader037/viewer/2022102900/55392f894a79590a7f8b48ff/html5/thumbnails/17.jpg)
UUNIVERSITY OF NIVERSITY OF MMASSACHUSETTSASSACHUSETTS A AMHERST • MHERST • Department of Computer Science Department of Computer Science
Experimental Results
![Page 18: CRAMM: Virtual Memory Support for Garbage-Collected Applications](https://reader037.vdocuments.site/reader037/viewer/2022102900/55392f894a79590a7f8b48ff/html5/thumbnails/18.jpg)
UUNIVERSITY OF NIVERSITY OF MMASSACHUSETTSASSACHUSETTS A AMHERST • MHERST • Department of Computer Science Department of Computer Science 18
Experimental Evaluation
Experimental setup: CRAMM (Jikes RVM + Linux),
unmodified Jikes RVM, JRockit, HotSpot GC: GenCopy, CopyMS, MS, SemiSpace, GenMS SPECjvm98, DaCapo, SPECjbb, ipsixql +
SPEC2000
Experiments: Dynamic memory pressure Overhead w/o memory pressure
![Page 19: CRAMM: Virtual Memory Support for Garbage-Collected Applications](https://reader037.vdocuments.site/reader037/viewer/2022102900/55392f894a79590a7f8b48ff/html5/thumbnails/19.jpg)
UUNIVERSITY OF NIVERSITY OF MMASSACHUSETTSASSACHUSETTS A AMHERST • MHERST • Department of Computer Science Department of Computer Science 19
Elapsed Time (seconds)
GenMS – SPECjbb (Modified) w/ 160M memory
stock w/o pressureCRAMM w/ pressure
# t
ran
sact
ion
s fin
ish
ed
(th
ou
san
ds)
Stock w/ pressure
stock w/o pressure
296.67 secs 1136
majflts
CRAMM w/ pressure 302.53
secs 1613 majflts
98% CPU
Stock w/ pressure 720.11
secs 39944 majflts
48% CPU
Initial heap size: 120MB
Dynamic Memory
Pressure (1)
![Page 20: CRAMM: Virtual Memory Support for Garbage-Collected Applications](https://reader037.vdocuments.site/reader037/viewer/2022102900/55392f894a79590a7f8b48ff/html5/thumbnails/20.jpg)
UUNIVERSITY OF NIVERSITY OF MMASSACHUSETTSASSACHUSETTS A AMHERST • MHERST • Department of Computer Science Department of Computer Science 20
Dynamic Memory Pressure (2)
SPECjbb (modified): Normalized Elapsed Time
JRockit
HotSpot
CRAMM-GenMSCRAMM-MSCRAMM-SS
HotSpotJRockit
# t
ran
sact
ion
s fin
ish
ed
(t
hou
san
ds)
![Page 21: CRAMM: Virtual Memory Support for Garbage-Collected Applications](https://reader037.vdocuments.site/reader037/viewer/2022102900/55392f894a79590a7f8b48ff/html5/thumbnails/21.jpg)
UUNIVERSITY OF NIVERSITY OF MMASSACHUSETTSASSACHUSETTS A AMHERST • MHERST • Department of Computer Science Department of Computer Science 21
CRAMM VM: Efficiency
Overhead: on average, 1% - 2.5%
CRAMM VM Overhead
0
0.5
1
1.5
2
2.5
3
3.5
4
SPEC2Kint SPEC2Kfp Java-
GenCopy
Java-
SemiSpace
Java-
MarkSweep
Java-GenMS Java-
CopyMS
% O
verh
ead
Additional Overhead
Histogram Collection
![Page 22: CRAMM: Virtual Memory Support for Garbage-Collected Applications](https://reader037.vdocuments.site/reader037/viewer/2022102900/55392f894a79590a7f8b48ff/html5/thumbnails/22.jpg)
UUNIVERSITY OF NIVERSITY OF MMASSACHUSETTSASSACHUSETTS A AMHERST • MHERST • Department of Computer Science Department of Computer Science 22
Conclusion
Cooperative Robust Automatic Memory Management (CRAMM)
GC: Collector-neutral WSS model VM: Statistics-gathering virtual memory manager
Dynamically chooses nearly-optimal heap size for garbage-collected applications
Maximizes use of memory without paging Minimal overhead (1% - 2.5%) Quickly adapts to memory pressure changes
http://www.cs.umass.edu/~tingy/CRAMM
![Page 23: CRAMM: Virtual Memory Support for Garbage-Collected Applications](https://reader037.vdocuments.site/reader037/viewer/2022102900/55392f894a79590a7f8b48ff/html5/thumbnails/23.jpg)
UUNIVERSITY OF NIVERSITY OF MMASSACHUSETTSASSACHUSETTS A AMHERST • MHERST • Department of Computer Science Department of Computer Science 23
![Page 24: CRAMM: Virtual Memory Support for Garbage-Collected Applications](https://reader037.vdocuments.site/reader037/viewer/2022102900/55392f894a79590a7f8b48ff/html5/thumbnails/24.jpg)
UUNIVERSITY OF NIVERSITY OF MMASSACHUSETTSASSACHUSETTS A AMHERST • MHERST • Department of Computer Science Department of Computer Science 24
Backup Slides
Example of paging Problem, javac Understanding fault curves Characterizing Paging Behavior
Using fault curves / LRU SegQ design
Collecting fault curves on the fly Calculating WSS of GCed
applications
![Page 25: CRAMM: Virtual Memory Support for Garbage-Collected Applications](https://reader037.vdocuments.site/reader037/viewer/2022102900/55392f894a79590a7f8b48ff/html5/thumbnails/25.jpg)
UUNIVERSITY OF NIVERSITY OF MMASSACHUSETTSASSACHUSETTS A AMHERST • MHERST • Department of Computer Science Department of Computer Science 25
d e f g h i j k l m n c k l m ncb c d e f g h i j k l m n c k l m n
aba abc defghijklmn abc defghijklm n abdefghijckl n m abc defghijk mn l abc defghijlmn k abdefghijklmn c
4
n
321 1
Characterizing Paging Behavior
Memory reference sequence
LRU Queue
Pages in Least Recently Used order
Hit Histogram
Fault Curve
0000000000 0000
m n
1 14
l m nk l m nc k l m na b c d e f g h i j k l m n c k l m n
5
1
1 14114
i
i ihitfault 1
12 pages
5 pages
Associated with each LRU position
![Page 26: CRAMM: Virtual Memory Support for Garbage-Collected Applications](https://reader037.vdocuments.site/reader037/viewer/2022102900/55392f894a79590a7f8b48ff/html5/thumbnails/26.jpg)
UUNIVERSITY OF NIVERSITY OF MMASSACHUSETTSASSACHUSETTS A AMHERST • MHERST • Department of Computer Science Department of Computer Science 26
Heap Size = 240Mb
Memory = 145Mb
# of Faults ≈ 1000
50 seconds
extreme paging
substantial paging:
“looping” behavior fits into
memory
Fault curve: Relationship of heap size, real memory & page faults
Heap size=
0.5 second
![Page 27: CRAMM: Virtual Memory Support for Garbage-Collected Applications](https://reader037.vdocuments.site/reader037/viewer/2022102900/55392f894a79590a7f8b48ff/html5/thumbnails/27.jpg)
UUNIVERSITY OF NIVERSITY OF MMASSACHUSETTSASSACHUSETTS A AMHERST • MHERST • Department of Computer Science Department of Computer Science 27
VMM design: SegQ
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
LRU Queue
Hit Histogram
Active Inactive Evicted
0 0 0 0 0 0 0 0 0 0 0
Active / Inactive Boundary
0 0 0 0 0 0 0 0 0 0 0
CLOCK algorithm Strict LRU
• Adaptive control of Inactive list size
Major fault (on disk)Minor fault (in memory)
![Page 28: CRAMM: Virtual Memory Support for Garbage-Collected Applications](https://reader037.vdocuments.site/reader037/viewer/2022102900/55392f894a79590a7f8b48ff/html5/thumbnails/28.jpg)
UUNIVERSITY OF NIVERSITY OF MMASSACHUSETTSASSACHUSETTS A AMHERST • MHERST • Department of Computer Science Department of Computer Science 28
VMM design: SegQ
Active Inactive Evicted
Active / Inactive Boundary
CLOCK algorithm Strict LRU
WSS
What is the WSS w.r.t 5%?
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
![Page 29: CRAMM: Virtual Memory Support for Garbage-Collected Applications](https://reader037.vdocuments.site/reader037/viewer/2022102900/55392f894a79590a7f8b48ff/html5/thumbnails/29.jpg)
UUNIVERSITY OF NIVERSITY OF MMASSACHUSETTSASSACHUSETTS A AMHERST • MHERST • Department of Computer Science Department of Computer Science 29
CRAMM System: Demo
JVM
Memory (150MB)
Other Apps
Heap Size (120MB) Need 60MB memory
Polling Memor
y Status
GC: Memory exhausted, triggers a full collection …
Collection Finished
GC: Collection is finished; Memory is released
VM: Calculates app’s WSS and Available memory
WSS, Available Memory
GC: Choose a new heap size using WSS model
Heap Size (100MB)Heap Size (90MB)Heap Size (150MB)
VMM
GC: Shrinks the heap size againOther apps finishedGC: Grows the heap size to make better use of memory
![Page 30: CRAMM: Virtual Memory Support for Garbage-Collected Applications](https://reader037.vdocuments.site/reader037/viewer/2022102900/55392f894a79590a7f8b48ff/html5/thumbnails/30.jpg)
UUNIVERSITY OF NIVERSITY OF MMASSACHUSETTSASSACHUSETTS A AMHERST • MHERST • Department of Computer Science Department of Computer Science 30
CRAMM VM: Control overhead
Goal: 1% of execution time < 0.5%: grow inactive list size > 1.5%: shrink inactive list size
When Interval: 1/16 seconds # of minflts > (interval * 2%) / minflt_cost
How Grow: min(active, inactive)/32 Shrink: min(active, inactive)/8 Refill: min(active, inactive)/16
![Page 31: CRAMM: Virtual Memory Support for Garbage-Collected Applications](https://reader037.vdocuments.site/reader037/viewer/2022102900/55392f894a79590a7f8b48ff/html5/thumbnails/31.jpg)
UUNIVERSITY OF NIVERSITY OF MMASSACHUSETTSASSACHUSETTS A AMHERST • MHERST • Department of Computer Science Department of Computer Science 31
CRAMM vs. Bookmarking Collector
Two different approaches CRAMM:
A new VMM Moderate modifications in collectors Heap level control (coarse granularity)
BC: A new collector Moderate modifications in VMM Page level control (fine granularity)
![Page 32: CRAMM: Virtual Memory Support for Garbage-Collected Applications](https://reader037.vdocuments.site/reader037/viewer/2022102900/55392f894a79590a7f8b48ff/html5/thumbnails/32.jpg)
UUNIVERSITY OF NIVERSITY OF MMASSACHUSETTSASSACHUSETTS A AMHERST • MHERST • Department of Computer Science Department of Computer Science 32
Static Memory Pressure
optimal
![Page 33: CRAMM: Virtual Memory Support for Garbage-Collected Applications](https://reader037.vdocuments.site/reader037/viewer/2022102900/55392f894a79590a7f8b48ff/html5/thumbnails/33.jpg)
UUNIVERSITY OF NIVERSITY OF MMASSACHUSETTSASSACHUSETTS A AMHERST • MHERST • Department of Computer Science Department of Computer Science 33
Dynamic Memory Pressure (1)
Initial heap size: 120MB
stock w/o pressure
336.17 secs 1136
majflts
CRAMM w/ pressure 386.88
secs 1179 majflts
98% CPU
Stock w/ pressure 928.49
secs 47941 majflts
36% CPU
![Page 34: CRAMM: Virtual Memory Support for Garbage-Collected Applications](https://reader037.vdocuments.site/reader037/viewer/2022102900/55392f894a79590a7f8b48ff/html5/thumbnails/34.jpg)
UUNIVERSITY OF NIVERSITY OF MMASSACHUSETTSASSACHUSETTS A AMHERST • MHERST • Department of Computer Science Department of Computer Science 34
Dynamic Memory Pressure (1)
Available
memory
Heap size
Sample after every collection
adaptive
![Page 35: CRAMM: Virtual Memory Support for Garbage-Collected Applications](https://reader037.vdocuments.site/reader037/viewer/2022102900/55392f894a79590a7f8b48ff/html5/thumbnails/35.jpg)
UUNIVERSITY OF NIVERSITY OF MMASSACHUSETTSASSACHUSETTS A AMHERST • MHERST • Department of Computer Science Department of Computer Science 35
Dynamic Memory Pressure (3)
![Page 36: CRAMM: Virtual Memory Support for Garbage-Collected Applications](https://reader037.vdocuments.site/reader037/viewer/2022102900/55392f894a79590a7f8b48ff/html5/thumbnails/36.jpg)
UUNIVERSITY OF NIVERSITY OF MMASSACHUSETTSASSACHUSETTS A AMHERST • MHERST • Department of Computer Science Department of Computer Science 36
Appel _213_javac60MB real memory
Too small:GC a lot
Too large:page a lot
Optimal
Problem & Motivation
Heap size vs Running time
![Page 37: CRAMM: Virtual Memory Support for Garbage-Collected Applications](https://reader037.vdocuments.site/reader037/viewer/2022102900/55392f894a79590a7f8b48ff/html5/thumbnails/37.jpg)
UUNIVERSITY OF NIVERSITY OF MMASSACHUSETTSASSACHUSETTS A AMHERST • MHERST • Department of Computer Science Department of Computer Science 37
Manage processes/files
mem_info structure organization Unused list: closed files Normal list: running processes, files in use
Handling files close: deactivate all pages, move to unused list open: move to normal list, rebuild its active list
Eviction policy Scan Unused list first Then select from normal list in round-robin
manner
![Page 38: CRAMM: Virtual Memory Support for Garbage-Collected Applications](https://reader037.vdocuments.site/reader037/viewer/2022102900/55392f894a79590a7f8b48ff/html5/thumbnails/38.jpg)
UUNIVERSITY OF NIVERSITY OF MMASSACHUSETTSASSACHUSETTS A AMHERST • MHERST • Department of Computer Science Department of Computer Science 38
Behind the WSS model?
Stop-the-world, tracing collectors Two phases: mutator and collector
Mutator: runs the app Allocation, references existing objects
Collector: Traces pointers for live objects
GC behavior dominates: no “infrequently” used pages
Base rate: at least once for each GC cycle
Working Set Size (WSS)the amount of memory needed so that the time spent on page faults is lower than certain percent of total execution
time. (5%)
![Page 39: CRAMM: Virtual Memory Support for Garbage-Collected Applications](https://reader037.vdocuments.site/reader037/viewer/2022102900/55392f894a79590a7f8b48ff/html5/thumbnails/39.jpg)
UUNIVERSITY OF NIVERSITY OF MMASSACHUSETTSASSACHUSETTS A AMHERST • MHERST • Department of Computer Science Department of Computer Science 39
GC gives more choices !
Non-GCed Application
GCed Application
W(k,t)
kk
W(k,t)
Heap: 20MBHeap: 30MBHeap: 45MB
Heap: 65MB
Working Set Size W(k, t): at time t, the set of all pages used k most recent references
Memory pressure , scan frequency , k , WSS , more pages can be evicted, page
faults , running time
Larger search space. Change heap size,
change WSS, avoid page faults, less impact on
running time
Hmm… a search problem!
Search Criteria Working Set Size:
The amount of memory needed so that the time
spent on page faults is lower than certain percent of total
execution time. (typical value: 5%)