Ver Fonte

Collector tweaks.

woollybah há 6 anos atrás
pai
commit
1da98d7365
3 ficheiros alterados com 13 adições e 12 exclusões
  1. 8 8
      blitz.mod/blitz.bmx
  2. 3 2
      blitz.mod/blitz_gc.c
  3. 2 2
      blitz.mod/blitz_gc.h

+ 8 - 8
blitz.mod/blitz.bmx

@@ -54,17 +54,17 @@ ModuleInfo "History: 1.04 Release"
 ModuleInfo "History: Fixed C Compiler warnings"
 ModuleInfo "History: Fixed C Compiler warnings"
 
 
 ?win32
 ?win32
-ModuleInfo "CC_OPTS: -DGC_THREADS -DPARALLEL_MARK -DATOMIC_UNCOLLECTABLE -DLARGE_CONFIG"
+ModuleInfo "CC_OPTS: -DGC_THREADS -DPARALLEL_MARK -DATOMIC_UNCOLLECTABLE -DLARGE_CONFIG -DUSE_MMAP -DUSE_MUNMAP -DGC_UNMAP_THRESHOLD=3"
 ?osx
 ?osx
-ModuleInfo "CC_OPTS: -DGC_THREADS -DPARALLEL_MARK -DATOMIC_UNCOLLECTABLE -DLARGE_CONFIG"
+ModuleInfo "CC_OPTS: -DGC_THREADS -DPARALLEL_MARK -DATOMIC_UNCOLLECTABLE -DLARGE_CONFIG -DUSE_MMAP -DUSE_MUNMAP -DGC_UNMAP_THRESHOLD=3"
 ?linuxx86
 ?linuxx86
-ModuleInfo "CC_OPTS: -DGC_THREADS -DPARALLEL_MARK -DATOMIC_UNCOLLECTABLE -DLARGE_CONFIG"
+ModuleInfo "CC_OPTS: -DGC_THREADS -D_REENTRANT -DPARALLEL_MARK -DATOMIC_UNCOLLECTABLE -DLARGE_CONFIG -DUSE_MMAP -DUSE_MUNMAP -DGC_UNMAP_THRESHOLD=3"
 ?linuxx64
 ?linuxx64
-ModuleInfo "CC_OPTS: -DGC_THREADS -DPARALLEL_MARK -DATOMIC_UNCOLLECTABLE -DLARGE_CONFIG"
+ModuleInfo "CC_OPTS: -DGC_THREADS -D_REENTRANT -DPARALLEL_MARK -DATOMIC_UNCOLLECTABLE -DLARGE_CONFIG -DUSE_MMAP -DUSE_MUNMAP -DGC_UNMAP_THRESHOLD=3"
 ?raspberrypi
 ?raspberrypi
-ModuleInfo "CC_OPTS: -DGC_THREADS -DPARALLEL_MARK -DATOMIC_UNCOLLECTABLE"
+ModuleInfo "CC_OPTS: -DGC_THREADS -D_REENTRANT -DPARALLEL_MARK -DATOMIC_UNCOLLECTABLE -DUSE_MMAP -DUSE_MUNMAP -DGC_UNMAP_THRESHOLD=3"
 ?android
 ?android
-ModuleInfo "CC_OPTS: -DGC_THREADS -DATOMIC_UNCOLLECTABLE"
+ModuleInfo "CC_OPTS: -DGC_THREADS -D_REENTRANT -DATOMIC_UNCOLLECTABLE"
 ?emscripten
 ?emscripten
 ModuleInfo "CC_OPTS: -DATOMIC_UNCOLLECTABLE"
 ModuleInfo "CC_OPTS: -DATOMIC_UNCOLLECTABLE"
 ?ios
 ?ios
@@ -444,7 +444,7 @@ about:
 This function will have no effect if the garbage collector has been
 This function will have no effect if the garbage collector has been
 suspended due to #GCSuspend.
 suspended due to #GCSuspend.
 End Rem
 End Rem
-Function GCCollect:Int()="bbGCCollect"
+Function GCCollect:Size_T()="bbGCCollect"
 
 
 Rem
 Rem
 bbdoc: Run garbage collector, collecting a little
 bbdoc: Run garbage collector, collecting a little
@@ -462,7 +462,7 @@ about:
 This function only returns 'managed memory'. This includes all objects, strings and
 This function only returns 'managed memory'. This includes all objects, strings and
 arrays in use by the application.
 arrays in use by the application.
 End Rem
 End Rem
-Function GCMemAlloced:Int()="bbGCMemAlloced"
+Function GCMemAlloced:Size_T()="bbGCMemAlloced"
 
 
 Rem
 Rem
 bbdoc: Private: do not use
 bbdoc: Private: do not use

+ 3 - 2
blitz.mod/blitz_gc.c

@@ -117,8 +117,9 @@ int bbGCValidate( void *q ){
 	return 0;
 	return 0;
 }
 }
 
 
-int bbGCCollect(){
+size_t bbGCCollect(){
 	GC_gcollect();
 	GC_gcollect();
+	return GC_get_expl_freed_bytes_since_gc();
 }
 }
 
 
 int bbGCCollectALittle() {
 int bbGCCollectALittle() {
@@ -139,7 +140,7 @@ void bbGCResume(){
 	GC_enable();
 	GC_enable();
 }
 }
 
 
-int bbGCMemAlloced(){
+size_t bbGCMemAlloced(){
 	return GC_get_heap_size();
 	return GC_get_heap_size();
 }
 }
 
 

+ 2 - 2
blitz.mod/blitz_gc.h

@@ -51,8 +51,8 @@ void		bbGCSetDebug( int debug );
 void*	bbGCMalloc( int size,int flags );
 void*	bbGCMalloc( int size,int flags );
 BBObject*	bbGCAllocObject( int size,BBClass *clas,int flags );
 BBObject*	bbGCAllocObject( int size,BBClass *clas,int flags );
 int 		bbGCValidate( void *p );
 int 		bbGCValidate( void *p );
-int		bbGCMemAlloced();
-int		bbGCCollect();
+size_t		bbGCMemAlloced();
+size_t		bbGCCollect();
 int     bbGCCollectALittle();
 int     bbGCCollectALittle();
 void		bbGCSuspend();
 void		bbGCSuspend();
 void		bbGCResume();
 void		bbGCResume();