Skip to content

Use ProcessPoolExecutor instead of ThreadPoolExecutor. #250

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

Open
wants to merge 1 commit into
base: main
Choose a base branch
from

Conversation

ManishPatelKodiak
Copy link

@ManishPatelKodiak ManishPatelKodiak commented May 20, 2025

With the ThreadPoolExecutor, it was observed that the compile commands extractor was effectively running single threaded for substantial periods of time, most likely due to the GIL. CPU utilization was only about one core. Using a ProcessPoolExecutor to work around the GIL seems to provide a substantial performance benefit - it was about 6x faster in a test run.

With the ThreadPoolExecutor, it was observed that the compile commands generator was effectively running single threaded, most likely due to the GIL. CPU utilization was only about one core. Using a ProcessPoolExecutor to work around the GIL seems to provide a substantial performance benefit - it was 6x faster when running on a powerful machine on a very large repo.
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

Successfully merging this pull request may close these issues.

1 participant