1
0
Fork 0
mirror of https://github.com/VSadov/Satori.git synced 2025-06-08 03:27:04 +09:00
This commit is contained in:
vsadov 2022-09-08 23:03:35 -07:00
parent 745e5a5586
commit 63f0cdb3bb

View 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