anon-397276's picture
From anon-397276 rss RSS 

SGen talk at FOSDEM '11 

SGen, Mono's new garbage collector

Talk by Mark Probst

 

 
 
Tags:  mono  fosdem  fosdem2011  gc 
Views:  4210
Published:  February 16, 2011
 
0
download

Share plick with friends Share
save to favorite
Report Abuse Report Abuse
 
Related Plicks
GC BE

GC BE

From: offersneaker
Views: 308 Comments: 0

 
33

33

From: wholesale2wd1
Views: 818 Comments: 0

 
Oupa Mostert

Oupa Mostert

From: schlottman_gc
Views: 1147 Comments: 0

 
C# On The iPhone with MonoTouch at DDD8

C# On The iPhone with MonoTouch at DDD8

From: boutisa
Views: 1970 Comments: 0
C# On The iPhone with MonoTouch at DDD8
 
Mono Ethylene Glycol Brine (MEG)

Mono Ethylene Glycol Brine (MEG)

From: ChillerC
Views: 311 Comments: 0
Mono Ethylene Glycol Brine (MEG) is slightly hygroscopic in nature & must be stored under conditions so that contamination with water and adsorption of moisture are prevented .
 
See all 
 
More from this user
No more plicks from this user
 
 
 URL:          AddThis Social Bookmark Button
Embed Thin Player: (fits in most blogs)
Embed Full Player :
 
 

Name

Email (will NOT be shown to other users)

 

 
 
Comments: (watch)
plicker fisher (1 year ago)
Buy cheap jerseys from china online with wholesale price! We can supply series of Sport Jersey. welcome come to our website:=== http://www.buycheapjerseyforu.com === everybody!sorry bother your time a min,we are serious and professional jersey supplier,we can offer NFL,NHL,MLB,NBA jerser,the NFL jersey 18usd each,the NHL jersey 38USD each.MLB jersey 18usd each,NAB jersey 18usd each.we have many jerseys of other players, so please contact us for more information if you are interested in . 1) More pictures available on our-=== http://www.buycheapjerseyforu.com === 2) Perfect quality, small order accepted . 3) 100% safe door to door delivery, within 5 - 7 days air express for small orders . 4) We have lots of jerseys in stock 5) Letters and number are sewn on jerseys body,100% embroidery 6) Size: .48, 50, 52, 54, 56, 60 Delivery by UPS, DHL, EMS door to door 7) Delivery in 5 - 7 days NFL,NBA,MLB all are 18usd!!!! The jerseys in stock may be updated everyday ! come on,join us! ==== http://www.buycheapjerseyforu.com ==== We are serious company we look forward to establish a mutual trust and long time business with you in the near future sincerely. We will do our best job for you!!! 50%~70% off ! We offer high quality,low price,best service.We guarantee that seven days of door-to-door! Free Shipping on all orders ! Website: http://www.buycheapjerseyforu.com
 
 
Notes:
 
Slide 1: SGen — Mono’s new Garbage Collector Mark Probst Introduction Simple garbage collection Generational garbage collection SGen Improving your program’s performance Tuning SGen SGen — Mono’s new Garbage Collector Mark Probst Novell / LINBIT 04 February 2011
Slide 2: SGen — Mono’s new Garbage Collector Mark Probst Introduction Simple garbage collection Generational garbage collection SGen Improving your program’s performance Tuning SGen Outline 1 Introduction 2 Simple garbage collection 3 Generational garbage collection 4 SGen 5 Improving your program’s performance 6 Tuning SGen
Slide 3: SGen — Mono’s new Garbage Collector Mark Probst Introduction Simple garbage collection Generational garbage collection SGen Improving your program’s performance Tuning SGen Me On the Mono team since 2007 Generic code sharing Initial PPC64 port Working on SGen since April 2009
Slide 4: SGen — Mono’s new Garbage Collector Mark Probst Introduction Simple garbage collection Generational garbage collection SGen Improving your program’s performance Tuning SGen Why not Boehm for Life? Slow allocation Not generational Hard to do precise GC with App Domains Fragmentation issues
Slide 5: SGen — Mono’s new Garbage Collector Mark Probst Introduction Simple garbage collection Generational garbage collection SGen Improving your program’s performance Tuning SGen Mark-and-Sweep Root R
Slide 6: SGen — Mono’s new Garbage Collector Mark Probst Introduction Simple garbage collection Generational garbage collection SGen Improving your program’s performance Tuning SGen Mark-and-Sweep Root R
Slide 7: SGen — Mono’s new Garbage Collector Mark Probst Introduction Simple garbage collection Generational garbage collection SGen Improving your program’s performance Tuning SGen Mark-and-Sweep Root R
Slide 8: SGen — Mono’s new Garbage Collector Mark Probst Introduction Simple garbage collection Generational garbage collection SGen Improving your program’s performance Tuning SGen Mark-and-Sweep Root R
Slide 9: SGen — Mono’s new Garbage Collector Mark Probst Introduction Simple garbage collection Generational garbage collection SGen Improving your program’s performance Tuning SGen Mark-and-Sweep Root R
Slide 10: SGen — Mono’s new Garbage Collector Mark Probst Introduction Simple garbage collection Generational garbage collection SGen Improving your program’s performance Tuning SGen Mark-and-Sweep Root R
Slide 11: SGen — Mono’s new Garbage Collector Mark Probst Introduction Simple garbage collection Generational garbage collection SGen Improving your program’s performance Tuning SGen Mark-and-Sweep Root R
Slide 12: SGen — Mono’s new Garbage Collector Mark Probst Introduction Simple garbage collection Generational garbage collection SGen Improving your program’s performance Tuning SGen Copying Root R
Slide 13: SGen — Mono’s new Garbage Collector Mark Probst Introduction Simple garbage collection Generational garbage collection SGen Improving your program’s performance Tuning SGen Copying Root R
Slide 14: SGen — Mono’s new Garbage Collector Mark Probst Introduction Simple garbage collection Generational garbage collection SGen Improving your program’s performance Tuning SGen Copying Root R
Slide 15: SGen — Mono’s new Garbage Collector Mark Probst Introduction Simple garbage collection Generational garbage collection SGen Improving your program’s performance Tuning SGen Copying Root R
Slide 16: SGen — Mono’s new Garbage Collector Mark Probst Introduction Simple garbage collection Generational garbage collection SGen Improving your program’s performance Tuning SGen Copying Root R
Slide 17: SGen — Mono’s new Garbage Collector Mark Probst Introduction Simple garbage collection Generational garbage collection SGen Improving your program’s performance Tuning SGen Copying Root R
Slide 18: SGen — Mono’s new Garbage Collector Mark Probst Introduction Simple garbage collection Generational garbage collection SGen Improving your program’s performance Tuning SGen Copying Root R
Slide 19: SGen — Mono’s new Garbage Collector Mark Probst Introduction Simple garbage collection Generational garbage collection SGen Improving your program’s performance Tuning SGen The generational hypothesis Most objects die young Those that don’t live for a long time
Slide 20: SGen — Mono’s new Garbage Collector Mark Probst Introduction Simple garbage collection Generational garbage collection SGen Improving your program’s performance Tuning SGen Generations Separate heaps for young and old objects Young objects are collected frequently Those that survive get "promoted"
Slide 21: SGen — Mono’s new Garbage Collector Mark Probst Introduction Simple garbage collection Generational garbage collection SGen Improving your program’s performance Tuning SGen Write barriers Nursery Root Major Heap
Slide 22: SGen — Mono’s new Garbage Collector Mark Probst Introduction Simple garbage collection Generational garbage collection SGen Improving your program’s performance Tuning SGen Write barriers Nursery Root Major Heap
Slide 23: SGen — Mono’s new Garbage Collector Mark Probst Introduction Simple garbage collection Generational garbage collection SGen Improving your program’s performance Tuning SGen Generations Nursery Major heap Large Object Space (LOS) For objects ≥ 8000 bytes Logically part of the major heap
Slide 24: SGen — Mono’s new Garbage Collector Mark Probst Introduction Simple garbage collection Generational garbage collection SGen Improving your program’s performance Tuning SGen Thread Local Allocation Buffers (TLAB) Nursery Thread 1 Thread 2 Thread 3 Each thread gets a small part of the nursery Uncontested pointer-bumping allocation
Slide 25: SGen — Mono’s new Garbage Collector Mark Probst Introduction Simple garbage collection Generational garbage collection SGen Improving your program’s performance Tuning SGen Pinning Not everything is scanned precisely Even then, not all precisely scanned pointers can be changed Everything on the stack
Slide 26: SGen — Mono’s new Garbage Collector Mark Probst Introduction Simple garbage collection Generational garbage collection SGen Improving your program’s performance Tuning SGen Pinning We cannot move some objects This is problematic mostly in the nursery Because it’s small and fast allocation depends on it
Slide 27: SGen — Mono’s new Garbage Collector Mark Probst Introduction Simple garbage collection Generational garbage collection SGen Improving your program’s performance Tuning SGen Mark-and-Sweep Fixed-size blocks (16kb) Each block contains objects of the same size That helps prevent fragmentation
Slide 28: SGen — Mono’s new Garbage Collector Mark Probst Introduction Simple garbage collection Generational garbage collection SGen Improving your program’s performance Tuning SGen Evacuation
Slide 29: SGen — Mono’s new Garbage Collector Mark Probst Introduction Simple garbage collection Generational garbage collection SGen Improving your program’s performance Tuning SGen Allocation is cheap p u b l i c c l a s s Test { int a , b ; p u b l i c s t a t i c i n t Main ( ) { f o r ( i n t i = 0 ; i < 5 0 0 0 0 0 0 0 ; ++i ) T e s t t = new T e s t ( ) ; return 0; } } Boehm SGen SGen 128k nursery Quad Core i7 Darwin 4s 11498 GCs (1.5s) 0.45s 191/1 GCs (3.6ms) 0.8s 6141/1 GCs (69ms) Dual Core i7 Linux 3s 17321 GCs (1.7s) 0.5s 287/1 GCs (6ms) 1.1s 9215/1 GCs (152ms)
Slide 30: SGen — Mono’s new Garbage Collector Mark Probst Introduction Simple garbage collection Generational garbage collection SGen Improving your program’s performance Tuning SGen Don’t use free lists Live objects are a continuous cost Unless you don’t do any other allocation at all Even then, see previous slide
Slide 31: SGen — Mono’s new Garbage Collector Mark Probst Introduction Simple garbage collection Generational garbage collection SGen Improving your program’s performance Tuning SGen Don’t write to reference fields Especially not in old objects Better yet, don’t have them in the first place Objects without reference fields are processed faster
Slide 32: SGen — Mono’s new Garbage Collector Mark Probst Introduction Simple garbage collection Generational garbage collection SGen Improving your program’s performance Tuning SGen Weak refs are expensive But less expensive than on Boehm
Slide 33: SGen — Mono’s new Garbage Collector Mark Probst Introduction Simple garbage collection Generational garbage collection SGen Improving your program’s performance Tuning SGen Finalization is expensive (and evil) Time of finalization is not determined Finalization order is not determined Objects are kept alive longer
Slide 34: SGen — Mono’s new Garbage Collector Mark Probst Introduction Simple garbage collection Generational garbage collection SGen Improving your program’s performance Tuning SGen Environment Variable MONO_GC_PARAMS See man page
Slide 35: SGen — Mono’s new Garbage Collector Mark Probst Introduction Simple garbage collection Generational garbage collection SGen Improving your program’s performance Tuning SGen Nursery Size nursery-size= must be a power of two Default is 4m Going too low leads to over-pinning Enlarge if you have more threads
Slide 36: SGen — Mono’s new Garbage Collector Mark Probst Introduction Simple garbage collection Generational garbage collection SGen Improving your program’s performance Tuning SGen Major Collector major= marksweep The cautious default marksweep-par marksweep-fixed Use this unless you have good reason not to marksweep-fixed-par Better yet, use this and report bugs copying
Slide 37: SGen — Mono’s new Garbage Collector Mark Probst Introduction Simple garbage collection Generational garbage collection SGen Improving your program’s performance Tuning SGen Concurrent Sweep no-concurrent-sweep Currently the default concurrent-sweep Use this, report bugs
Slide 38: SGen — Mono’s new Garbage Collector Mark Probst Introduction Simple garbage collection Generational garbage collection SGen Improving your program’s performance Tuning SGen Write Barrier wbarrier= cardtable The default Slow for large heaps remset Very bad if you do lots of reference field writes Good if you do very few Subject to short term change!

   
Time on Slide Time on Plick
Slides per Visit Slide Views Views by Location