История изменений
Исправление Saakx, (текущая версия) :
Если Shenandoah написан на C++, значит не далёк тот день, когда его заменят на Rust.
Так и вышло:
rsgc - вдохновлён сборщиком Shenandoah
https://docs.rs/rsgc/latest/rsgc/
rtgc - Real-Time Garbage Collector, переносит дорогую операцию удаления в обычный (не реалтаймовый) поток
https://docs.rs/rtgc/latest/rtgc/
shredder - работает в многопоточных контекстах и имеет режим фоновой сборки (concurrent collection), когда мусор собирается параллельно основной работе программы без длительных остановок
https://github.com/Others/shredder
dumpster - фокусируется на простоте и однопоточной производительности
https://github.com/claytonwramsey/dumpster
Реалтаймовость нужна при программировании станков. А по новой политике Россия лидирующая станкостроительная держава мира (будет).
Проблема: JVM не имеет плагинного API для GC (в отличие от .NET)
в .NET есть механизм плагинных сборщиков мусора (GC plugin interface), позволяющий подставить свою реализацию.
Три шага:
-
Rust-библиотека должна экспортировать C-ABI, а JVM должна вызывать эти функции. Написать адаптер на Rust → C (JNI) → JVM.
-
Обеспечить создание барьеров — научить компилятор JIT вставлять вызовы GC-библиотеки при каждой записи в поле.
-
Создать GC-интерфейс для JVM
Исправление Saakx, :
Если Shenandoah написан на C++, значит не далёк тот день, когда его заменят на Rust.
Так и вышло:
rsgc - вдохновлён сборщиком Shenandoah
https://docs.rs/rsgc/latest/rsgc/
rtgc - Real-Time Garbage Collector, переносит дорогую операцию удаления в обычный (не реалтаймовый) поток
https://docs.rs/rtgc/latest/rtgc/
shredder - работает в многопоточных контекстах и имеет режим фоновой сборки (concurrent collection), когда мусор собирается параллельно основной работе программы без длительных остановок
https://github.com/Others/shredder
dumpster - фокусируется на простоте и однопоточной производительности
https://github.com/claytonwramsey/dumpster
Реалтаймовость нужна при программировании станков. А по новой политике Россия лидирующая станкостроительная держава мира (будет).
Проблема: JVM не имеет плагинного API для GC (в отличие от .NET)
в .NET есть механизм плагинных сборщиков мусора (GC plugin interface), позволяющий подставить свою реализацию.
Исправление Saakx, :
Если Shenandoah написан на C++, значит не далёк тот день, когда его заменят на Rust.
Так и вышло:
rsgc - вдохновлён сборщиком Shenandoah
https://docs.rs/rsgc/latest/rsgc/
rtgc - Real-Time Garbage Collector, переносит дорогую операцию удаления в обычный (не реалтаймовый) поток
https://docs.rs/rtgc/latest/rtgc/
shredder - работает в многопоточных контекстах и имеет режим фоновой сборки (concurrent collection), когда мусор собирается параллельно основной работе программы без длительных остановок
https://github.com/Others/shredder
dumpster - фокусируется на простоте и однопоточной производительности
https://github.com/claytonwramsey/dumpster
Реалтаймовость нужна при программировании станков. А по новой политике Россия лидирующая станкостроительная держава мира (будет).
Проблема: JVM не имеет плагинного API для GC (в отличие от .NET)
Исправление Saakx, :
Если Shenandoah написан на C++, значит не далёк тот день, когда его заменят на Rust.
Так и вышло:
rsgc - вдохновлён сборщиком Shenandoah
https://docs.rs/rsgc/latest/rsgc/
rtgc - Real-Time Garbage Collector, переносит дорогую операцию удаления в обычный (не реалтаймовый) поток
https://docs.rs/rtgc/latest/rtgc/
shredder - работает в многопоточных контекстах и имеет режим фоновой сборки (concurrent collection), когда мусор собирается параллельно основной работе программы без длительных остановок
https://github.com/Others/shredder
dumpster - фокусируется на простоте и однопоточной производительности
https://github.com/claytonwramsey/dumpster
Реалтаймовость нужна при программировании станков. А по новой политике Россия лидирующая станкостроительная держава мира (будет).
Исправление Saakx, :
Если Shenandoah написан на C++, значит не далёк тот день, когда его заменят на Rust.
Так и вышло:
rsgc - вдохновлён сборщиком Shenandoah
https://docs.rs/rsgc/latest/rsgc/
rtgc - Real-Time Garbage Collector, переносит дорогую операцию удаления в обычный (не реалтаймовый) поток
https://docs.rs/rtgc/latest/rtgc/
shredder - работает в многопоточных контекстах и имеет режим фоновой сборки (concurrent collection), когда мусор собирается параллельно основной работе программы без длительных остановок
https://github.com/Others/shredder
dumpster - фокусируется на простоте и однопоточной производительности
Реалтаймовость нужна при программировании станков. А по новой политике Россия лидирующая станкостроительная держава мира (будет).
Исправление Saakx, :
Если Shenandoah написан на C++, значит не далёк тот день, когда его заменят на Rust.
Так и вышло:
rsgc - вдохновлён сборщиком Shenandoah
https://docs.rs/rsgc/latest/rsgc/
rtgc - Real-Time Garbage Collector, переносит дорогую операцию удаления в обычный (не реалтаймовый) поток
https://docs.rs/rtgc/latest/rtgc/
shredder - работает в многопоточных контекстах и имеет режим фоновой сборки (concurrent collection), когда мусор собирается параллельно основной работе программы без длительных остановок
dumpster - фокусируется на простоте и однопоточной производительности
Реалтаймовость нужна при программировании станков. А по новой политике Россия лидирующая станкостроительная держава мира (будет).
Исправление Saakx, :
Если Shenandoah написан на C++, значит не далёк тот день, когда его заменят на Rust.
Так и вышло:
rsgc - вдохновлён сборщиком Shenandoah
https://docs.rs/rsgc/latest/rsgc/
rtgc - Real-Time Garbage Collector, переносит дорогую операцию удаления в обычный (не реалтаймовый) поток
shredder - работает в многопоточных контекстах и имеет режим фоновой сборки (concurrent collection), когда мусор собирается параллельно основной работе программы без длительных остановок
dumpster - фокусируется на простоте и однопоточной производительности
Реалтаймовость нужна при программировании станков. А по новой политике Россия лидирующая станкостроительная держава мира (будет).
Исправление Saakx, :
Если Shenandoah написан на C++, значит не далёк тот день, когда его заменят на Rust.
Так и вышло:
rsgc - вдохновлён сборщиком Shenandoah
https://docs.rs/rsgc/latest/rsgc/
rtgc - Real-Time Garbage Collector, переносит дорогую операцию удаления в обычный (не реалтаймовый) поток
shredder - работает в многопоточных контекстах и имеет режим фоновой сборки (concurrent collection), когда мусор собирается параллельно основной работе программы без длительных остановок
dumpster - фокусируется на простоте и однопоточной производительности
Реалтаймовость нужна при программировании станков. А по новой политике Россия лидирующая станкостроительная держава мира (будет).
Исправление Saakx, :
Если Shenandoah написан на C++, значит не далёк тот день, когда его заменят на Rust.
Так и вышло:
rsgc - вдохновлён сборщиком Shenandoah
rtgc - Real-Time Garbage Collector, переносит дорогую операцию удаления в обычный (не реалтаймовый) поток
shredder - работает в многопоточных контекстах и имеет режим фоновой сборки (concurrent collection), когда мусор собирается параллельно основной работе программы без длительных остановок
dumpster - фокусируется на простоте и однопоточной производительности
Реалтаймовость нужна при программировании станков. А по новой политике Россия лидирующая станкостроительная держава мира (будет).
Исходная версия Saakx, :
Если Shenandoah написан на C++, значит не далёк тот день, когда его заменят на Rust.
Так и вышло:
rsgc - вдохновлён сборщиком Shenandoah
rtgc - Real-Time Garbage Collector, переносит дорогую операцию удаления в обычный (не реалтаймовый) поток
shredder - работает в многопоточных контекстах и имеет режим фоновой сборки (concurrent collection), когда мусор собирается параллельно основной работе программы без длительных остановок
dumpster - фокусируется на простоте и однопоточной производительности.
Реалтаймовость нужна при программировании станков. А по новой политике Россия лидирующая станкостроительная держава мира (будет).