- Timestamp:
- May 15, 2020, 3:20:00 PM (4 years ago)
- Branches:
- (u'fieker-DuVal', '117eb8c30fc9e991c4decca4832b1d19036c4c65')(u'spielwiese', 'c5facdfddea2addfd91babd8b9019161dea4b695')
- Children:
- a1b40ab8675488c2a4f8e225d9d748ba70340727
- Parents:
- 538e06d0809adf9f75fea000cf70d354bb674ab5
- Location:
- ppcc/gclib
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
ppcc/gclib/README
r538e06 r4bde6b 55 55 malloc()); 56 56 - objects finalization and memory recycling (reclaiming to the 57 underl aying malloc implementation) is done lazily (between57 underlying malloc implementation) is done lazily (between 58 58 collections). 59 59 … … 66 66 - small initial internal data size; 67 67 - less source code (to verify); 68 - minimal set of the underl aying clib/pthread/Win32 functions used.68 - minimal set of the underlying clib/pthread/Win32 functions used. 69 69 70 70 The drawbacks of TinyGC are: … … 81 81 blacklisting, memory unmapping, thread-local allocation, parallel 82 82 marking, generation and incremental collections); 83 - relies on the underl aying malloc/free() implementation (which may be83 - relies on the underlying malloc/free() implementation (which may be 84 84 broken for large heaps, like, e.g., in some versions of msvcrt); 85 85 - "all-interior-pointers" mode is limited by the offset of 256 … … 104 104 symbols are not visible outside); 105 105 - both pthreads and Win32 threads are supported; 106 - no thread-safety of the underl aying malloc/free is required;106 - no thread-safety of the underlying malloc/free is required; 107 107 - the stack direction is detected at TinyGC initialization; 108 108 - no warnings are printed; … … 112 112 - CPU state is saved by setjmp(); 113 113 - there is no object "header" (i.e. the original object size is passed 114 to the underl aying malloc()).114 to the underlying malloc()). 115 115 116 116 Usage notes: -
ppcc/gclib/htdocs/index.html
r538e06 r4bde6b 178 178 <LI>malloc-based allocation (i.e. every object is allocated using 179 179 <CODE>malloc()</CODE>); 180 <LI>objects finalization and memory recycling (reclaiming to the underl aying180 <LI>objects finalization and memory recycling (reclaiming to the underlying 181 181 malloc implementation) is done lazily (between collections). 182 182 </UL></DIV> … … 191 191 <LI>small initial internal data size; 192 192 <LI>less source code (to verify); 193 <LI>minimal set of the underl aying193 <LI>minimal set of the underlying 194 194 <ACRONYM>clib</ACRONYM>/<ACRONYM>pthread</ACRONYM>/<ACRONYM>Win32</ACRONYM> 195 195 functions used. … … 209 209 memory unmapping, thread-local allocation, parallel marking, generation and 210 210 incremental collections); 211 <LI>relies on the underl aying malloc/free() implementation (which may be211 <LI>relies on the underlying malloc/free() implementation (which may be 212 212 broken for large heaps, like, e.g., in some versions of msvcrt); 213 213 <LI>"all-interior-pointers" mode is limited by the offset of 256 … … 237 237 <LI>both <ACRONYM>pthreads</ACRONYM> and <ACRONYM>Win32</ACRONYM> threads are 238 238 supported; 239 <LI>no thread-safety of the underl aying malloc/free is required;239 <LI>no thread-safety of the underlying malloc/free is required; 240 240 <LI>the stack direction is detected at <ACRONYM>TinyGC</ACRONYM> 241 241 initialization; … … 246 246 <LI><ACRONYM>CPU</ACRONYM> state is saved by <CODE>setjmp()</CODE>; 247 247 <LI>there is no object "header" (i.e. the original object size is passed to 248 the underl aying <CODE>malloc()</CODE>).248 the underlying <CODE>malloc()</CODE>). 249 249 </UL> 250 250 <P>Usage notes:
Note: See TracChangeset
for help on using the changeset viewer.