Skip to content

MarkSweepSpace should use BlockPageResourcre #1145

@wks

Description

@wks

The native mark sweep space only ever allocates fixed-sized blocks from the page resource. It is fully eligible for using BlockPageResource just like ImmixSpace.

The problem with using raw FreeListPageResource is that FreeListPageResource::release_pages needs to acquire a mutex (FreeListPageResource::sync). The more GC workers there are, the worse the problem becomes.

When using a single GC worker thread:

image

When using two GC worker threads (running the same workload):

image

When using 16 GC worker threads:

image

And it is taking up a significant proportion of the GC time when running multiple workers.

image

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions