MemoryProfiler
rack-mini-profiler
Our great sponsors
MemoryProfiler | rack-mini-profiler | |
---|---|---|
6 | 21 | |
1,658 | 3,656 | |
- | 0.7% | |
3.4 | 7.5 | |
11 months ago | 2 months ago | |
Ruby | Ruby | |
MIT License | MIT License |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
MemoryProfiler
-
Suggestions for how to reduce memory usage
Wire the memory_profiler into an around_action to identify your bloaty actions.
-
A Deep Dive into Memory Leaks in Ruby
The memory_profiler gem offers a very simple API and a detailed (albeit a little overwhelming) allocated and retained memory report — that includes the classes of objects that are allocated, their size, and where they were allocated. It's straightforward to add to our leaky program.
-
Ok y’all. How can we get this kind of real-time memory profiling in Ruby? Does it already exist? Is anyone working on this?
memory_profiler
-
Advanced ActiveRecord Querying - With Benchmarks!
We don't need to rely upon a priori reasoning only, we can use memory_profiles and benchmark_ips to compare the memory consumption and iterations per second of each solution.
-
Is there a more efficient way to do these permutation calculations?
Either https://github.com/tmm1/stackprof for cpu or https://github.com/SamSaffron/memory_profiler for memory. In practice profiling and removing allocations also gives a large perf boost.
-
Reduce memory consumption with a custom ActiveRecord attribute
Our project has one endpoint which gets called quite often. So, I profiled it with memory profiler and saw a line pointing to hstore.rb.
rack-mini-profiler
-
RoR Debugbar
Author of peek here. Honestly, I got burnt out. We stopped using this internally at GitHub which made it difficult to continue working on. Rails was going through its identity crisis with asset pipelines.
https://github.com/MiniProfiler/rack-mini-profiler gets you most of the way there and comes by default in the Gemfile for new Rails applications.
-
For RoR, see in production every method call, parameter and return value
This already exists to some degree: https://github.com/MiniProfiler/rack-mini-profiler
- How to reduce memory usage for your Rails app - R14 - Memory Quota Exceeded in Ruby (MRI)
- benchmark sql queries in an action?
-
A Trick For Reading Flamegraphs
rack-mini-profiler will generate flamegraphs for Rails backend requests.
-
How to make Turbo frames load faster?
Have you tried using https://github.com/MiniProfiler/rack-mini-profiler to get a clear breakdown of where your server is spending it's time filling the requests? If rack-mini-profiler is too much for you to deal with right now, you can still get a good idea just using the https://github.com/ruby/benchmark gem and wrapping some of your requests in a benchmark.
-
Active_storage first time need help!
# Bundle edge Rails instead: gem "rails", github: "rails/rails", branch: "main" gem "rails", "~> 7.0.4" # The original asset pipeline for Rails [https://github.com/rails/sprockets-rails] gem "sprockets-rails" # Use sqlite3 as the database for Active Record gem "sqlite3", "~> 1.4" # Use the Puma web server [https://github.com/puma/puma] gem "puma", "~> 5.0" # Use JavaScript with ESM import maps [https://github.com/rails/importmap-rails] gem "importmap-rails" # Hotwire's SPA-like page accelerator [https://turbo.hotwired.dev] gem "turbo-rails" # Hotwire's modest JavaScript framework [https://stimulus.hotwired.dev] gem "stimulus-rails" # Build JSON APIs with ease [https://github.com/rails/jbuilder] gem "jbuilder" # Windows does not include zoneinfo files, so bundle the tzinfo-data gem gem "tzinfo-data", platforms: %i[ mingw mswin x64_mingw jruby ] # Reduces boot times through caching; required in config/boot.rb gem "bootsnap", require: false # Use Sass to process CSS # gem "sassc-rails" # Use Active Storage variants [https://guides.rubyonrails.org/active_storage_overview.html#transforming-images] # gem "image_processing", "~> 1.2" group :development, :test do # See https://guides.rubyonrails.org/debugging_rails_applications.html#debugging-with-the-debug-gem gem "debug", platforms: %i[ mri mingw x64_mingw ] end group :development do # Use console on exceptions pages [https://github.com/rails/web-console] gem "web-console" # Add speed badges [https://github.com/MiniProfiler/rack-mini-profiler] # gem "rack-mini-profiler" # Speed up commands on slow machines / big apps [https://github.com/rails/spring] # gem "spring" end group :test do # Use system testing [https://guides.rubyonrails.org/testing.html#system-testing] gem "capybara" gem "selenium-webdriver" gem "webdrivers" end
- What are the main suspects in a really slow Rails app?
-
My project: railstart app
rack-mini-profiler
-
Troubleshooting a RoR Application in Production
For a quick ad hoc peek at the performance of pages that you can request yourself, without having to go through the hoops of connecting to and committing to an external service, this gem can also be useful: https://github.com/MiniProfiler/rack-mini-profiler
What are some alternatives?
bullet - help to kill N+1 queries and unused eager loading
Timeasure - Transparent method-level wrapper for profiling purposes in Ruby
ruby-prof - A ruby profiler. See https://ruby-prof.github.io for more information.
prosopite - :mag: Rails N+1 queries auto-detection with zero false positives / false negatives
Peek - Take a peek into your Rails applications.
perftools.rb - gperftools for ruby code
Derailed Benchmarks - Go faster, off the Rails - Benchmarks for your whole Rails app
memray - Memray is a memory profiler for Python
benchmark-ips - Provides iteration per second benchmarking for Ruby