23. VM scavenges SA
Eden
new space SB
RT Old
Old
Perm
RT
24. VM scavenges SA VI must ensure
Eden
new space SB success
RT Old
Old
Perm
RT
25. VM scavenges SA VI must ensure
Eden
new space SB success
VM signals low
memory RT Old
semaphore
Old
Perm
RT
26. VM scavenges SA VI must ensure
Eden
new space SB success
VM signals low VI manages old
memory RT Old space (GC,
semaphore grow, shrink)
Old
Perm
RT
27. VM scavenges SA VI must ensure
Eden
new space SB success
VM signals low VI manages old
memory RT Old space (GC,
semaphore grow, shrink)
VM (few) Old VI memory
Perm policy classes
fixed actions RT
29. Worst case SA
Eden
scavenge SB
RT Old
Old
Perm
RT
30. Worst case SA Eden and
Eden
scavenge SB SA or SB full
RT Old
Old
Perm
RT
31. Worst case SA Eden and
Eden
scavenge SB SA or SB full
RT Old RT grows
Old
Perm
RT
32. Worst case SA Eden and
Eden
scavenge SB SA or SB full
RT Old RT grows
Old
Perm Old RT grows
RT
33. Worst case
SA Eden and
scavenge Eden
SB SA or SB full
due to GC
Stack RT Old RT grows
Stack zone full,
flushed to
object memory
Old
Perm Old RT grows
RT
34. The picture
Worst Case
Scavenge
Upper
0 Memory
Bound
Growth
Image Emergency
Regime
Size Threshold
Bound
35. The picture
Growth Worst Case
Increments Scavenge
Upper
0 Memory
Bound
Growth
Image Emergency
Regime
Size Threshold
Bound
54. Before
Upper
0 Memory
Bound
Upper
0 Memory
Bound
After
55. Run time per stress test case, in seconds
40,000
30,000
20,000
10,000
0
A (x100) B (x100) C (x400) D (x40) E (x40) F (x6) G (x6)
VW 7.7 legacy MemoryPolicy (with fixes) ~1 day, if they work
VW 7.7.1 without sizesAtStartup tuning ~160 minutes
VW 7.7.1 default ~73 minutes
A: pointer garbage Segmented container Large container
B: byte garbage D: byte allocation F: byte allocation
C: point creation E: pointer allocation G: pointer allocation
59. VisualWorks 7.8+
•Fixed space allocation fixed
•Improved weak / ephemeron support
•IGC performance improvements
•GC / IGC mark stack overflow prevention
•GC moves large objects back into large space
•New -m[1..7] VM switches
60. VisualWorks 7.8+
•Fixed space allocation fixed
N E
•Improved weak / ephemeron support
O
D
•IGC performance improvements
•GC / IGC mark stack overflow prevention
•GC moves large objects back into large space
•New -m[1..7] VM switches
64. VisualWorks 7.9
•Up to 40% faster GC
•Improved IGC uses less memory
•Adaptive time based memory policy IGC driver
65. VisualWorks 7.9
•Up to 40% faster GC
•Improved IGC uses less memory
•Adaptive time based memory policy IGC driver
•Memory policy IGC smart abort
66. VisualWorks 7.9
•Up to 40% faster GC
•Improved IGC uses less memory
•Adaptive time based memory policy IGC driver
•Memory policy IGC smart abort
•Memory policy IGC switch
67. VisualWorks 7.9
•Up to 40% faster GC
•Improved IGC uses less memory
•Adaptive time based memory policy IGC driver
•Memory policy IGC smart abort
•Memory policy IGC switch
•Updates to the OldRT, become:, fixed space...
68. VisualWorks 7.9
•Up to 40% faster GC
O N E
•Improved IGC uses less memory
D
•Adaptive time based memory policy IGC driver
•Memory policy IGC smart abort
•Memory policy IGC switch
•Updates to the OldRT, become:, fixed space...