In rails some time it's hard optimized performance of rails application but if we use some helping gem for optimized the rails application then it's simple and easy. There are so many gems for notify the process and showing internal working structure One of my favorite gem is Bullet this gem very use full when we want to solve N+1 problem in any rails application and want to speed up own application.
N+1 Problem :
Fix: -
N+1 Problem :
First Get a list of things
@courses = current_user.courses
Iterate over it, getting something for each thing.
<% @courses.each do |course| %>
<%= course.name %>
<%= course.teacher.name %>
<% end %>
Fix: -
@courses = current_user.includes(:teacher)
Basically Bullet gem help to find out where we want includes methods to resolving n+1 problem in rails application.
Here some simple step to using Bullet gem inside rails application.
1. Adding Gem in your Gemfile
gem 'bullet'
3. Adding some configuration for bullet gem in development.rb file .
cofig.cache_classes = true
config.after_initialize do
Bullet.enable = true
Bullet.alert = ENV['BULLETS_ALERTS']
Bullet.bullet_logger = true
Bullet.console = true
Bullet.rails_logger = true
end
4. Now run the rails application
BULLETS_ALERTS=true rails s
--------------------------------------------------------------------------------------------------------------------------
When we hit the application and if any N+1 and require counter Cache problem detect the bullet gem show pop-up and notify with detail where problem detect and also how to re-solve it. It is very help full gem for increase performance of any rails application.
No comments:
Post a Comment