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

Replace Bullet with Prosopite #385

Merged
merged 3 commits into from
Jul 5, 2023
Merged

Replace Bullet with Prosopite #385

merged 3 commits into from
Jul 5, 2023

Conversation

santib
Copy link
Member

@santib santib commented Jul 3, 2023

Evaluate replacing Bullet with Prosopite.

Remove Bullet: Bullet has many false positives, causes a lot of headaches, doesn't work properly with Rails 7 (e.g. in some of our projects it's not detecting existing N+1s), the code is complex, and it's not well maintained.

Add Prosopite: It's like Bullet but its code is much simpler. We tested it in some of our projects and it worked well. Additionally, it's recommended by Nate Berkopec, who is an expert in these matters.

Add Rails' strict_loading: Rails 6.1 added this feature, which is good and useful for detecting N+1s, but it still has some limitations in its functionality that prevent us from using it instead of Prosopite. What we can start doing is using it to log N+1s (in all environments), and later on, if the feature continues to mature, it might be able to fully replace Prosopite.

@santib santib requested a review from a team July 4, 2023 19:18
@TimoPeraza
Copy link
Contributor

Can you update readme changing [Bullet](https://github.com/flyerhzm/bullet) help to kill N+1?

README.md Show resolved Hide resolved
@santib santib merged commit 612f2ac into master Jul 5, 2023
1 check passed
@santib santib deleted the replace-bullet-2 branch July 5, 2023 17:30
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.

8 participants