From 730b40e1b6848514d61c52da3de8b3dc953d2018 Mon Sep 17 00:00:00 2001
From: nmorozov
Establishing the build infrastructure -
++ Implementing the GC interface -
++ Implementing the garbage collector algorithm -
++ Running the VM with the custom GC -
+Note
@@ -141,75 +140,75 @@ the Developer's Guide and documentation+ gc_init() initializes the garbage collector -
++ gc_wrapup() shuts down the GC -
++ gc_vm_initialized() notifies the GC about the VM transition from the initialization stage to running user applications -
++ gc_thread_init() and gc_thread_kill() notify the GC about creation and termination of user threads that may request memory allocation or other GC services -
++ gc_class_prepared() notifies the GC about loaded and prepared classes -
++ gc_alloc() performs slow allocation, can trigger garbage collection -
++ gc_alloc_fast() performs faster allocation, should not trigger garbage collection -
++ gc_add_root_set_entry() is responsible for enumeration -
++ gc_add_root_set_entry() enumerates one root pointer -
+See the Root set enumeration section in the Developer's Guide for details.
+ gc_supports_compressed_references() indicates whether GC supports compressed references -
++ gc_is_object_pinned() indicates whether the GC will move an object or not -
++ gc_force_gc() forces a garbage collection -
++ gc_free_memory() returns the estimated amount of memory available for allocation -
++ gc_pin_object() requests that the GC does not move an object -
++ gc_unpin_object() removes the restriction on not moving an object -
++ gc_get_next_live_object() iterates over live objects during the stop-the-world phase of garbage collection -
++ gc_finalize_on_exit() transfers finalizable queue contents to the VM core on shutdown -
++ gc_time_since_last_gc() returns the amount of time that elapsed since the previous collection, in milliseconds -
++ gc_total_memory() returns the overall amount of memory used for the Java heap -
++ gc_max_memory() returns the maximum amount of memory that can be used for the Java heap -
++ vm_enumerate_root_set_all_threads() suspends all user threads and initiates root set enumeration -
++ vm_resume_threads_after() resumes execution of user threads -
+These functions effectively restrict the garbage collector to stop-the-world algorithms only.
-- 1.4.1