mirror of
https://github.com/VSadov/Satori.git
synced 2025-06-08 03:27:04 +09:00
readme
This commit is contained in:
parent
745e5a5586
commit
63f0cdb3bb
1 changed files with 52 additions and 0 deletions
52
src/coreclr/gc/satori/README.md
Normal file
52
src/coreclr/gc/satori/README.md
Normal file
|
@ -0,0 +1,52 @@
|
|||
# Satori Garbage Collector #
|
||||
|
||||
A simple garbage collector that incorporates various ideas that I had over time.
|
||||
|
||||
### Short term goals: ###
|
||||
- auto-tuning, auto-scaling, mostly “knobless” design.
|
||||
- avoid long pauses when user threads are not making progress.
|
||||
|
||||
### Supported Features: ###
|
||||
|
||||
- [x] All features expected in a fully functional Garbage Collector:
|
||||
- Mark-and-sweep,
|
||||
- Internal pointers,
|
||||
- Premortem Finalization,
|
||||
- Weak References,
|
||||
- Dependent Handles,
|
||||
- Unloadable types,
|
||||
- ... etc...
|
||||
- [x] Generational GC.
|
||||
- younger generations can be collected without touching older ones
|
||||
- [x] Compacting GC.
|
||||
- can optionally relocate objects to reduce fragmentation.
|
||||
- [x] Concurrent GC.
|
||||
- all major phases, except relocation, can be done concurrently with managed code.
|
||||
- [x] Parallel GC
|
||||
- GC can employ multiple threads as needed.
|
||||
- [x] Thread-local GC.
|
||||
- generation 0 GC is an inline thread-local GC and does not stop other threads.
|
||||
- [x] Pacing GC.
|
||||
- allocating threads help with concurrent GC to ensure allocations are not getting ahead.
|
||||
- [x] Precise and Conservative modes
|
||||
- supports precise and conservative stack root reporting.
|
||||
- [x] Low-latency mode.
|
||||
- "nearly pauseless" mode when sensitive to the heap size blocking phases are turned off.
|
||||
- [x] Trimming of committed set.
|
||||
- lazy return of unused memory to the OS.
|
||||
|
||||
### Supported Platforms: ###
|
||||
| | x64 | arm64 |
|
||||
| --------| ------------------- | ------------------- |
|
||||
| Windows | <ul><li>- [x] </li> | <ul><li>- [x] </li> |
|
||||
| Linux | <ul><li>- [x] </li> | <ul><li>- [x] </li> |
|
||||
| macOS | <ul><li>- [x] </li> | <ul><li>- [x] </li> |
|
||||
|
||||
### Roadmap: ###
|
||||
- [ ] explicit memory limits
|
||||
- [ ] immortal allocations
|
||||
- [ ] preallocated objects
|
||||
- [ ] perf tuning (possibly a lot of opportunities)
|
||||
- [ ] more and better diagnostics (support for debuggers and profilers)
|
||||
- [ ] NUMA awareness
|
||||
|
Loading…
Add table
Add a link
Reference in a new issue