mmtk-core
seize
mmtk-core | seize | |
---|---|---|
9 | 6 | |
338 | 306 | |
5.6% | - | |
8.9 | 8.0 | |
1 day ago | 21 days ago | |
Rust | Rust | |
GNU General Public License v3.0 or later | MIT License |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
mmtk-core
-
I have written a JVM in Rust
Great learning project, I'm glad the author is having fun.
If they're interested in bolting on a GC, it couldn't hurt to look at MMtk. (https://www.mmtk.io/) Some high quality collection algorithms, written to be pluggable to various VMs, and written in Rust.
-
Writing a Compiler and a Virtual Machine in Rust
just here to mention https://github.com/mmtk/mmtk-core crate which provides garbage collectors. The only problem is requiring threads, which makes it unsuitable for wasm.
-
JDK 20 G1/Parallel/Serial GC Changes
AFAIK, no. The opposite is true with MMtk (https://www.mmtk.io), which is a toolkit with many GC algorithms implemented that has been plugged into other runtimes, including, as it happens, OpenJDK.
- Mmtk: Memory Management Toolkit
-
Garbage Collection with LLVM
IME the MPS is hard to set up correctly, and I've heard in Clasp they got in performance trouble, as per-thread allocation buffers were too small and they couldn't make the buffers larger. But indeed being conservative on the stack is a fine choice; someone mentioned Boehm being easy to use, and the MMTk is a newer option which allows for bump-allocation and being precise on the heap (like MPS), but at the moment you have to provide your own stack scanning code.
- Memory Management Toolkit – multi-runtime platform for language implementers
- MMTk.io – Memory Management ToolKit
seize
- Seize - Fast, efficient, and robust memory reclamation for Rust.
-
As part of the stdlib mutex overhaul, std::sync::Mutex on Linux now has competitive performance with parking_lot
Recently I learned about the hyaline reclamation scheme that seize uses. Mentioning since it may interest you:flurry, a concurrent HashMap, recently switched from crossbeam-epoch (based on epoch GC) to seize.
- Seize – Fast, efficient, and robust memory reclamation for Rust
- Seize: Fast, efficient, and robust memory reclamation
- Seize: Fast, efficient, and robust memory reclamation for concurrent data structures.
What are some alternatives?
bdwgc - The Boehm-Demers-Weiser conservative C/C++ Garbage Collector (bdwgc, also known as bdw-gc, boehm-gc, libgc)
tokio - A runtime for writing reliable asynchronous applications with Rust. Provides I/O, networking, scheduling, timers, ...
cactusref - 🌵 Cycle-Aware Reference Counting in Rust
librseq - Library for Restartable Sequences
micro-mitten - You might not need your garbage collector
flurry - A port of Java's ConcurrentHashMap to Rust
mark-sweep - A simple mark-sweep garbage collector in C
stupidalloc - A stupid Rust memory allocator
lib-wc - A simple rust library
rust-jvm3 - A JVM made for educational purposes that implements a subset of the specification
yew - Rust / Wasm framework for creating reliable and efficient web applications