Andy Wingo
887bdd5441
Clean up gcbench naming, to be consistent
2022-03-18 09:42:20 +01:00
Andy Wingo
7dda5b992d
Refactor pop_handle to not take the handle
2022-03-16 21:36:21 +01:00
Andy Wingo
32ddaa7624
Allocate GC context in GC-managed heap
2022-03-16 21:31:51 +01:00
Andy Wingo
f04b0bbd45
Simplify output of quads test
2022-03-16 14:28:49 +01:00
Andy Wingo
e7a3f83bcc
Add quads benchmark
...
Also expand GC interface with "allocate_pointerless". Limit lazy
sweeping to the allocation size that is causing the sweep, without
adding to fragmentation.
2022-03-16 14:16:22 +01:00
Andy Wingo
aac0faf4cf
Refactor type definitions
2022-03-16 09:05:31 +01:00
Andy Wingo
a1b4311cfc
Update status
2022-03-13 21:55:58 +01:00
Andy Wingo
a693c4ea8a
Bugfix to mark-sweep
...
Before this, the last sweep would cause premature gc
2022-03-13 21:45:20 +01:00
Andy Wingo
fddd4d9416
Hey parallel marking is finally an improvement??
2022-03-13 21:38:59 +01:00
Andy Wingo
4d7041bfa9
Another attempt at parallel marking, avoiding the channel
...
Not great though!
2022-03-13 13:54:58 +01:00
Andy Wingo
7ce07de670
First crack at parallel marking
2022-03-12 21:09:17 +01:00
Andy Wingo
9c89672c88
Put a local mark queue in front of the work-stealing queue
2022-03-11 11:57:14 +01:00
Andy Wingo
df9edfdff2
Remove tiny objects from mark-sweep
2022-03-11 11:48:26 +01:00
Andy Wingo
f57a1b8a55
Refactor to separate gcbench from gc
2022-03-11 11:48:26 +01:00
Andy Wingo
77ac530360
Add beginnings of parallel marker
2022-03-11 11:48:26 +01:00
Andy Wingo
01d3f9627e
Further accelerate sweeping
2022-03-11 11:48:17 +01:00
Andy Wingo
f6ac9d2571
Ability to set heap size on command line
2022-03-11 11:48:04 +01:00
Andy Wingo
5edc4fa81a
More efficient sweep
2022-03-11 11:44:11 +01:00
Andy Wingo
5c8a8a2d3e
Store mark bits on the side
...
Lets the sweeper avoid chasing pointers, and is more amenable to
parallel marking.
2022-03-11 11:23:58 +01:00
Andy Wingo
91a330e310
More asserts in mark-sweep
2022-03-11 11:23:58 +01:00
Andy Wingo
fb350fb3ff
Keep read/write positions when growing queue
2022-03-11 11:23:58 +01:00
Andy Wingo
c612ff3825
Optimize computation of size class from small object granule count
2022-03-11 11:23:58 +01:00
Andy Wingo
cfa7ea31ae
Move back to marking objects instead of edges
2022-03-11 11:23:58 +01:00
Andy Wingo
45405efe56
Move to mark queue, is it an improvement?
2022-03-11 11:23:58 +01:00
Andy Wingo
d2828975a5
Switch mark-sweep collector to mark stack
...
Slows down performance though! Have to think here.
2022-03-11 11:23:58 +01:00
Andy Wingo
502c0455a7
Fix mark-sweep allocator to clear contents
2022-03-11 11:23:43 +01:00
Andy Wingo
e492da2d2b
Add heap validation to gcbench
...
* GCBench.c (ValidateTree): New function.
2022-03-11 11:22:01 +01:00
Andy Wingo
7b60164cac
Update README
2022-03-07 11:31:28 +01:00
Andy Wingo
7b85284a89
Add mark-sweep collector
2022-03-07 10:23:05 +01:00
Andy Wingo
283721b39a
Refactor handling of precise and conservative roots
2022-03-04 15:27:22 +01:00
Andy Wingo
2a619ba67d
Add README
2022-03-02 09:17:23 +01:00
Andy Wingo
30b5c8a6c8
Use handle API, add semispace collector
2022-02-28 21:35:28 +01:00
Andy Wingo
2fdfefd2fc
handlify
2022-02-23 21:25:26 +01:00
Andy Wingo
25213ccdeb
Reindent gcbench
2022-02-23 20:03:32 +01:00
Andy Wingo
869a490ba6
Refactor gcbench.c
2022-02-21 21:22:21 +01:00
Andy Wingo
bdf4b27733
Initial commit
2022-02-21 21:05:18 +01:00