Răsfoiți Sursa

increase gc threshold

blueloveTH 2 ani în urmă
părinte
comite
d3c33c2d1c
3 a modificat fișierele cu 7 adăugiri și 3 ștergeri
  1. 5 0
      include/pocketpy/config.h
  2. 1 2
      include/pocketpy/gc.h
  3. 1 1
      src/gc.cpp

+ 5 - 0
include/pocketpy/config.h

@@ -24,6 +24,11 @@
 #define PK_ENABLE_CEVAL_CALLBACK    0
 #endif
 
+// GC min threshold
+#ifndef PK_GC_MIN_THRESHOLD         // can be overrided by cmake
+#define PK_GC_MIN_THRESHOLD         32768
+#endif
+
 // Whether to use `std::function` to do bindings or not
 // By default, functions to be binded must be a C function pointer without capture
 // However, someone thinks it's not convenient.

+ 1 - 2
include/pocketpy/gc.h

@@ -16,8 +16,7 @@ struct ManagedHeap{
 
     ManagedHeap(VM* vm): vm(vm) {}
     
-    static const int kMinGCThreshold = 3072;
-    int gc_threshold = kMinGCThreshold;
+    int gc_threshold = PK_GC_MIN_THRESHOLD;
     int gc_counter = 0;
 
     /********************/

+ 1 - 1
src/gc.cpp

@@ -36,7 +36,7 @@ namespace pkpy{
         gc_counter = 0;
         collect();
         gc_threshold = gen.size() * 2;
-        if(gc_threshold < kMinGCThreshold) gc_threshold = kMinGCThreshold;
+        if(gc_threshold < PK_GC_MIN_THRESHOLD) gc_threshold = PK_GC_MIN_THRESHOLD;
 #endif
     }