stackprof
rack-mini-profiler
Our great sponsors
stackprof | rack-mini-profiler | |
---|---|---|
6 | 21 | |
2,041 | 3,653 | |
- | 0.7% | |
5.7 | 7.5 | |
2 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.
stackprof
-
A Trick For Reading Flamegraphs
stackprof can be used alone/by itself to generate flamegraphs for arbitrary Ruby code.
-
Why do my requests take so much time to complete when View and ActiveRecord are finishing fast?
I’d use something like stackprof ( https://github.com/tmm1/stackprof ) to see where the time is going. If you already have suspicions you can use it to get information about a specific method / few lines of Ruby but there’s also a rack middleware.
-
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?
stackprof
-
Optimizing your tests in 5 steps
Other profilers, such as stackprof, trace everything that’s happening by line. These types of profilers usually need some instrumentation to be configured, as shown below:
-
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.
-
Automatically benchmark methods used within Rails
At first, I tried to benchmark the method using the benchmark library. (The profiler uses stackprof)
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?
rbtrace - like strace, but for ruby code
bullet - help to kill N+1 queries and unused eager loading
memray - Memray is a memory profiler for Python
ruby-prof - A ruby profiler. See https://ruby-prof.github.io for more information.
MemoryProfiler - memory_profiler for ruby
Peek - Take a peek into your Rails applications.
speedscope - 🔬 A fast, interactive web-based viewer for performance profiles.
Derailed Benchmarks - Go faster, off the Rails - Benchmarks for your whole Rails app
Rbenchmarker - Automatically log benchmarks for all methods
benchmark-ips - Provides iteration per second benchmarking for Ruby
rails_panel - Chrome extension for Rails development
perftools.rb - gperftools for ruby code