Justin Ethier
bd74d90100
Replace GC_DEBUG_PRINTFS with GC_DEBUG_TRACE
2016-07-30 19:13:23 -04:00
Justin Ethier
09807899d0
Fixes to debug code
2016-07-30 18:24:07 -04:00
Justin Ethier
facaf608ae
Define gc_collector_mark_gray as static
...
This is a commonly used function that the C compiler may be able to better optimize, such as inline, now that it is guaranteed to only be used within the gc.c module.
2016-07-25 21:46:30 -04:00
Justin Ethier
d6f5a81f2d
Fixed compiler warnings
2016-07-19 23:02:21 -04:00
Justin Ethier
1c0c0bb315
Change how mutations are stored in memory
...
Use a reallocated memory buffer instead of malloc'd pairs. This should speed things up by reducing the number of allocations and by keeping mutations in contiguous sections of memory.
2016-07-15 23:14:36 -04:00
Justin Ethier
d1b117f609
ifdef the "free" debug msg
2016-07-06 22:27:58 -04:00
Justin Ethier
8a3ed8e1a0
Free empty heap pages
2016-07-06 22:21:31 -04:00
Justin Ethier
d362f15ede
Bug fixes for huge heap objects
2016-07-07 03:28:17 -04:00
Justin Ethier
fe27aff148
Properly find last page of huge heap
2016-07-07 03:09:36 -04:00
Justin Ethier
aac1c44b3d
Attempt to allocate huge vectors on the heap
2016-07-06 23:38:57 -04:00
Justin Ethier
f526eeb6f3
Populate huge object heap
2016-07-06 23:07:43 -04:00
Justin Ethier
54f217fd4b
Added gc_heap_type and HEAP_HUGE
2016-07-06 20:30:23 -04:00
Justin Ethier
558c7d8257
Fast-track heap page size for a large allocation
2016-07-05 21:53:38 -04:00
Justin Ethier
93eff719a7
Cleanup
2016-06-29 08:06:38 -04:00
Justin Ethier
5a7be4f864
WIP
2016-06-27 23:01:41 -04:00
Justin Ethier
ed77858901
Added TODO
2016-06-28 00:46:26 -04:00
Justin Ethier
040ce4f017
WIP
2016-06-28 00:32:17 -04:00
Justin Ethier
a2dccabdb7
Initial version of gc_heap_free()
2016-06-27 20:45:23 -04:00
Justin Ethier
aa93c2c487
Issue #73
2016-06-25 00:21:20 -04:00
Justin Ethier
7181268d6b
Ran 'make indent'
2016-04-27 03:49:41 -04:00
Justin Ethier
5d1a605b66
Refactoring
2016-04-27 02:24:05 -04:00
Justin Ethier
008c857755
Refactoring
2016-04-26 23:33:36 -04:00
Justin Ethier
df20aaa6d3
Refactoring
2016-04-20 23:42:21 -04:00
Justin Ethier
ef1db96f2a
Refactoring
2016-04-20 23:10:46 -04:00
Justin Ethier
9bcdd35370
Added more GC constants
2016-04-20 22:07:14 -04:00
Justin Ethier
40416364f8
Refactoring
2016-04-20 23:00:04 -04:00
Justin Ethier
63a2204efc
Refactoring
2016-04-20 22:20:02 -04:00
Justin Ethier
b14d25afc9
Decrease memory usage of object header
2016-04-20 21:46:28 -04:00
Justin Ethier
7815cebd5a
GC for opaques
2016-04-19 22:11:31 -04:00
Justin Ethier
6d9b1436ec
Tweak initial heap size
2016-04-13 21:21:48 -04:00
Justin Ethier
b0b02c0dc7
Move fprintf to GC trace
2016-04-12 22:37:06 -04:00
Justin Ethier
1578127410
Grow heap more slowly
2016-04-12 22:17:32 -04:00
Justin Ethier
71d085091d
Fully-generalize gc algorithms
...
Updated code to support 3 types of heaps, based on size. Need to be able to use the old algorithms to inspect the active size of each heap. We need to collect if one of the sub-heaps is almost full, even if the others are mostly empty.
2016-04-12 21:47:41 -04:00
Justin Ethier
8d8ce71c92
Revert previous change, for now
2016-04-12 23:44:13 -04:00
Justin Ethier
0de7c6b98b
Experimenting with gradual heap growth
2016-04-12 23:10:21 -04:00
Justin Ethier
89881e901a
Experimenting with a medium object heap
2016-04-12 21:34:18 -04:00
Justin Ethier
b18aadb229
Temporarily disable growing heap after GC
...
To get this working properly, would need to figure out if any sub-heaps are nearly full. Since we grow these heaps anyway as needed, this code is not strictly required. So diabling for now to get cyclone to build and run again.
2016-04-11 21:18:34 -04:00
Justin Ethier
9174e320dc
WIP - use differnt heap for small objects
2016-04-11 23:37:49 -04:00
Justin Ethier
a63f9a729e
Refactoring
2016-04-01 21:48:01 -04:00
Justin Ethier
0da8dabc5a
Renamed macro
2016-04-01 21:03:40 -04:00
Justin Ethier
42faaae217
Do not include free sizes of 0 in min count
2016-03-25 23:19:10 -04:00
Justin Ethier
a8946428c5
Report used size
2016-03-25 22:18:42 -04:00
Justin Ethier
1ce9fee354
Added gc_print_stats
2016-03-25 22:13:56 -04:00
Justin Ethier
d73686194b
GC bytevectors
2016-03-23 03:53:04 -04:00
Justin Ethier
9889248cab
Removed unused closure types
2016-03-22 21:49:12 -04:00
Justin Ethier
23fd4268a3
More conservative locking when collector cooperates
...
Try to prevent cases where the mutator and collector are both running minor GC at the same time.
2016-03-04 21:58:31 -05:00
Justin Ethier
38099bb3c6
Fixed compiler warnings
2016-03-03 21:49:48 -05:00
Justin Ethier
edca776b42
Removed debug code
2016-03-03 20:48:14 -05:00
Justin Ethier
e034459e81
Added GC thresholds
2016-03-03 23:11:35 -05:00
Justin Ethier
758bb25ba9
Tweaking GC parameters, but not done yet
2016-03-02 23:02:17 -05:00