mirror of
https://github.com/pocketpy/pocketpy
synced 2025-12-10 04:00:17 +00:00
Update heap.c
This commit is contained in:
parent
9e82b52a05
commit
bfee435fb7
@ -40,9 +40,9 @@ void ManagedHeap__collect_if_needed(ManagedHeap* self) {
|
|||||||
self->freed_ma[1] = self->freed_ma[2];
|
self->freed_ma[1] = self->freed_ma[2];
|
||||||
self->freed_ma[2] = freed;
|
self->freed_ma[2] = freed;
|
||||||
int avg_freed = (self->freed_ma[0] + self->freed_ma[1] + self->freed_ma[2]) / 3;
|
int avg_freed = (self->freed_ma[0] + self->freed_ma[1] + self->freed_ma[2]) / 3;
|
||||||
const int upper = PK_GC_MIN_THRESHOLD * 2;
|
const int upper = PK_GC_MIN_THRESHOLD * 8;
|
||||||
const int lower = PK_GC_MIN_THRESHOLD / 2;
|
const int lower = PK_GC_MIN_THRESHOLD / 2;
|
||||||
float free_ratio = (float)avg_freed / PK_GC_MIN_THRESHOLD;
|
float free_ratio = (float)avg_freed / self->gc_threshold;
|
||||||
int new_threshold = self->gc_threshold * (1 / free_ratio);
|
int new_threshold = self->gc_threshold * (1 / free_ratio);
|
||||||
// printf("gc_threshold=%d, avg_freed=%d, new_threshold=%d\n", self->gc_threshold, avg_freed, new_threshold);
|
// printf("gc_threshold=%d, avg_freed=%d, new_threshold=%d\n", self->gc_threshold, avg_freed, new_threshold);
|
||||||
self->gc_threshold = c11__min(c11__max(new_threshold, lower), upper);
|
self->gc_threshold = c11__min(c11__max(new_threshold, lower), upper);
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user