You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
I've been investigating performance problems in our xsnap usage of XS, where we're seeing GC happen more frequently than expected, and the allocations being made to fxAllocateChunks are surprisingly small (32-4000 bytes at a time), even though our xsCreation settings do incrementalHeapCount = 256 * 1024.
I'm suspicious of the following code in fxGrowChunks:
It looks like the return value from fxAddChunkSizes() is being ignored, leaving theSize at its original value (e.g. 28 when allocating a new Function). On 17-Mar-2021, in 3070f24, this was changed:
I think the original intention was to increase theSize to the->minimumChunksSize, give or take some rounding and headers. In the new version, I think that increase got lost, resulting in small allocations, and therefore more frequent GC calls.
I've been investigating performance problems in our
xsnap
usage of XS, where we're seeing GC happen more frequently than expected, and the allocations being made tofxAllocateChunks
are surprisingly small (32-4000 bytes at a time), even though ourxsCreation
settings doincrementalHeapCount = 256 * 1024
.I'm suspicious of the following code in
fxGrowChunks
:moddable/xs/sources/xsMemory.c
Lines 423 to 434 in a2a38f4
It looks like the return value from
fxAddChunkSizes()
is being ignored, leavingtheSize
at its original value (e.g. 28 when allocating a new Function). On 17-Mar-2021, in 3070f24, this was changed:3070f24#diff-5458ac58321f0e9dcd9ea60d1b7e2b87ea74e00cb70c5da666d1eed076c14258R380
I think the original intention was to increase
theSize
tothe->minimumChunksSize
, give or take some rounding and headers. In the new version, I think that increase got lost, resulting in small allocations, and therefore more frequent GC calls.The fix is probably just:
We're building against a derivative of commit 0b451c9 (aka tag
OS210406
), on Linux.thanks!
-Brian
The text was updated successfully, but these errors were encountered: