Hi, On Wed, 08 Jan 2020 17:03:25 +0200 megane <megan...@gmail.com> wrote:
> The garbage collector currently has couple of less than optimal > behaviors: > > 1. If there's constantly only a small amount of heap left after a major > collection then there will be constant major collections. > > 2. If the used heap space does yo-yo then there will be constant heap > resizes. > > > These patches are for those two cases. > > Benchmarks for the 1st patch: > http://paste.call-cc.org/paste?id=02242cbbd2c79456920d8dfdb327b791231eefd2 > > http://paste.call-cc.org/paste?id=02242cbbd2c79456920d8dfdb327b791231eefd2#a1 > > - note the up-to 2x speedup in some cases > > Benchmarks when both patches applied: > > http://paste.call-cc.org/paste?id=02242cbbd2c79456920d8dfdb327b791231eefd2#a2 > > - see especially kernwyk-string > > Some picks: > > Vanilla master: > > Total run time (CPU time): 5m39.5449999999999s > Total time spent in major GCs: 54.041s > Total number of major GCs: 39245 > > With -:hf4M > > Total run time (CPU time): 4m57.9510000000001s > Total time spent in major GCs: 15.862s > Total number of major GCs: 4766 To celebrate the one-year anniversary of the submission of these patches I pushed them. I ran a relatively extensive set of benchmark configurations comparing CHICKEN from master against CHICKEN from master plus the patches. Results are here: http://parenteses.org/mario/misc/benchmarks-megane/ I could not find any significant performance degradation with the patches. The only degradations were very small, below the 5% deviance or large differences in tiny timing values, which I'd consider noise. On the other hand, the performance increase is quite significant and far from being noise, as far as I can tell. Thanks for the patches and for your patience, megane. All the best. Mario -- http://parenteses.org/mario