Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Parallel mark performance degradation caused by incremental collection #681

Open
ivmai opened this issue Dec 6, 2024 · 1 comment
Open

Comments

@ivmai
Copy link
Owner

ivmai commented Dec 6, 2024

I see GC is slower now with parallel_mark+incremental vs parallel_mark.

Source: master (6dcc828)
Host: Ubuntu 22.04 / x86_64
Compiler: gcc 11.4.0
How to build, e.g.: gcc -I include/ -I libatomic_ops/src -D GC_THREADS -D THREAD_LOCAL_ALLOC -D PARALLEL_MARK -O3 -march=native -Wall -Wextra -Wpedantic -D USE_MMAP -D USE_MUNMAP -o gctest tests/gctest.c extra/gc.c -lpthread -ldl

Output:

> ./gctest
Running on LINUX/X86_64 target
Supported VDBs: manual soft mprotect
Switched to incremental mode
Reading dirty bits from /proc
Completed 6 tests (concurrently)
...
Full collections took 309 ms
World-stopped pauses took 3772 ms (1514 us each in avg.)
Completed 3085 collections (using 16 marker threads)
Collector appears to work (testing done in 7231 ms)

> GC_DISABLE_INCREMENTAL=1 ./gctest
Running on LINUX/X86_64 target
Supported VDBs: manual soft mprotect
Completed 6 tests (concurrently)
...
Full collections took 1203 ms
World-stopped pauses took 1042 ms (299 us each in avg.)
Completed 1483 collections (using 16 marker threads)
Collector appears to work (testing done in 2305 ms)

Related: #151

@ivmai
Copy link
Owner Author

ivmai commented Dec 6, 2024

Also related: #545

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant