{"id":13328,"url":"https://github.com/raventid/awesome-ruby-performance","name":"awesome-ruby-performance","description":"A curated list of awesome Ruby Performance books, courses, trainings, conference talks, blogs and most inspiring open source contributors.","projects_count":40,"last_synced_at":"2026-06-13T23:00:29.212Z","repository":{"id":55948704,"uuid":"209849145","full_name":"raventid/awesome-ruby-performance","owner":"raventid","description":"A curated list of awesome Ruby Performance books, courses, trainings, conference talks, blogs and most inspiring open source contributors.","archived":false,"fork":false,"pushed_at":"2020-12-04T21:48:05.000Z","size":69,"stargazers_count":48,"open_issues_count":0,"forks_count":4,"subscribers_count":7,"default_branch":"master","last_synced_at":"2026-05-11T18:03:37.476Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":null,"has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/raventid.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2019-09-20T17:47:31.000Z","updated_at":"2024-06-28T13:32:30.000Z","dependencies_parsed_at":"2022-08-15T10:10:16.813Z","dependency_job_id":null,"html_url":"https://github.com/raventid/awesome-ruby-performance","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/raventid/awesome-ruby-performance","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/raventid%2Fawesome-ruby-performance","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/raventid%2Fawesome-ruby-performance/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/raventid%2Fawesome-ruby-performance/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/raventid%2Fawesome-ruby-performance/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/raventid","download_url":"https://codeload.github.com/raventid/awesome-ruby-performance/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/raventid%2Fawesome-ruby-performance/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33599465,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-05-28T02:00:06.440Z","response_time":99,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"created_at":"2024-01-12T20:23:47.004Z","updated_at":"2026-06-13T23:00:29.213Z","primary_language":null,"list_of_lists":false,"displayable":true,"categories":["Interesting performance talks not about Ruby","Conference talks","Blogs","Inspiring Open Source Contributors","Article series","Official Ruby bugtracker notes","Performance tools","High Performance Libraries","Benchmarks","Books"],"sub_categories":["Memory Improvements","Investigations","Memory","Application Insights"],"readme":"# Awesome Ruby Performance\nA curated list of awesome Ruby Performance books, courses, trainings, conference talks, blogs and most inspiring open source contributors. To get even more insights about performance you can take a look at [wiki pages](https://github.com/raventid/awesome-ruby-performance/wiki), they are work in progress now, but expect them to have more info.\n\n- [Awesome Ruby Performance](#awesome-ruby-performance)\n\t- [Contributions](#contributions)\n\t- [Books](#books)\n\t- [Video Courses](#video-courses)\n\t- [On-Site Trainings](#on-site-trainings)\n\t- [Upcoming conferences](#upcoming-conferences)\n\t- [Conference Talks](#conference-talks)\n\t- [Blogs](#blogs)\n\t- [Inspiring Open Source Contributors](#inspiring-open-source-contributors)\n\t- [Performance tools](#performance-tools)\n\t- [High Performance Libraries](#high-performance-libraries)\n\t- [Benchmarks](#benchmarks)\n\t- Article series\n\t\t- [Benchmarking](#benchmarking)\n\t\t- [Monitoring](#monitoring)\n\t\t- [Investigations](#investigations)\n\t\t- [JIT Optimizations](#jit-optimizations)\n\t\t- [Threading](#threading)\n\t\t- [Memory](#memory)\n\t\t- [RubyVM Internals](#rubyvm-internals)\n\t- Official Ruby bugtracker notes\n\t\t- [CPU Improvements](#cpu-improvements)\n\t\t- [Memory Improvements](#memory-improvements)\n\t- [Interesting performance talks not about Ruby](#interesting-performance-talks-not-about-ruby)\n\n## Contributions\n  Have you ever seen an interesting talk about Ruby performance and it's not listed here? Send a pull request. Have you ever read an interesting article about Ruby performance and it's not listed here? Send a pull request. Did you write an article? Send a pull request. Know interesting blogger, who writes about Ruby performance? You know what to do!\n\n  Do not forget to include a language remark: 🇯🇵 🇰🇷 🇩🇪 🇨🇳 🇺🇸 🇫🇷 🇪🇸 🇮🇹 🇷🇺 🇬🇧\n\n## Books\n\n* [Ruby Performance Optimization](https://pragprog.com/book/adrpo/ruby-performance-optimization) by Alexander Dymo 🇺🇸\n* [Ruby Under a Microscope](http://patshaughnessy.net/ruby-under-a-microscope) by Pat Shaughnessy 🇺🇸\n\n## Video Courses\n\n* TODO\n\n\n## On-Site Trainings\n\n* TODO\n\n\n## Upcoming conferences\n\n* TODO\n\n## Conference talks\n\nSorted from newest to oldest:\n* 2019\n\t* [Ruby CPU and Memory - Pareto principle](https://www.youtube.com/watch?v=eYhJWoxgoKA) by Юлиан Покровский (Oct 27, 2019, RubyRussia) 🇷🇺\n* 2015\n\t* [On Memory](https://www.youtube.com/watch?v=yxhrYiqatdA) by John Crepezzi (Mar 30, 2015, MountainWest RubyConf) 🇺🇸\n* Older\n\t* TODO\n\n## Blogs\n\n* [SpeedShop](https://www.speedshop.co/) 🇺🇸\n\n## Inspiring Open Source Contributors\n\n* [Nate Berkopec](https://github.com/nateberkopec) 🇺🇸\n* [Sam Saffron](https://github.com/SamSaffron)\n* [Peter Ohler](https://github.com/ohler55)\n\n## Performance tools\n* Benchmarking\n  * [benchmark-ips](https://github.com/evanphx/benchmark-ips) - Provides iteration per second benchmarking for Ruby.\n* Profiling\n  * Rack\n    * [Derailed Benchmarks](https://github.com/schneems/derailed_benchmarks) - A series of things you can use to benchmark a Rails or Ruby app.\n    * [rack-mini-profiler](https://github.com/MiniProfiler/rack-mini-profiler) - Profiler for your development and production Ruby rack apps.\n  * Pure Ruby\n    * [batch-loader](https://github.com/exaspark/batch-loader) – A generic lazy batching mechanism to avoid N+1 DB queries, HTTP queries, etc.\n    * [bullet](https://github.com/flyerhzm/bullet) - Help to kill N+1 queries and unused eager loading.\n    * [Peek](https://github.com/peek/peek) - Visual status bar showing Rails performance.\n    * [stackprof](https://github.com/tmm1/stackprof) - a sampling call-stack profiler for ruby 2.1+\n    * [Rbkit](https://github.com/code-mancers/rbkit) - profiler for Ruby. With a GUI.\n    * [rbspy](https://github.com/rbspy/rbspy) - Sampling profiler for any Ruby process.\n    * [ruby-prof](https://github.com/ruby-prof/ruby-prof) - A code profiler for MRI rubies.\n    * [speedscope](https://github.com/jlfwong/speedscope) - A fast, interactive web-based viewer for performance profiles. An alternative viewer for FlameGraphs. Will happily display multi-megabyte profiles without crashing your browser.\n* Linters, recommendation tools (possibly runnable on CI)\n  * [fasterer](https://github.com/DamirSvrtan/fasterer) - Don't make your Rubies go fast. Make them go fasterer\n### Application Insights\n* New_Relic\n* SkyLight - smart profiler for Ruby and Rails applications\n\n## High Performance Libraries\n* Booting code\n  * [bootsnap](https://github.com/Shopify/bootsnap) - Boot large Ruby/Rails apps faster.\n* C/Rust extensions\n  * [fast_blank](https://github.com/SamSaffron/fast_blank) - Provides a C-optimized method for determining if a string is blank.\n  * [yajl-ruby](https://github.com/brianmario/yajl-ruby) - A streaming JSON parsing and encoding library for Ruby (C bindings to yajl).\n  * [oj](https://github.com/ohler55/oj) - A fast JSON parser and Object marshaller as a Ruby gem.\n* Memory\n  * [nakayoshi_fork](https://github.com/ko1/nakayoshi_fork) - solves CoW friendly problem on MRI 2.2 and later\n  \n## Benchmarks\n* Ruby in Web\n  * [Concurrent HTTP requests in Ruby](https://github.com/exAspArk/concurrent_http_requests)\n  * [Benchmark some Ruby web microframeworks, just for fun](https://github.com/luislavena/bench-micro)\n## Article series\n\n### Benchmarking\n* [The Art of Benchmarking](http://mattwarren.org/2014/09/19/the-art-of-benchmarking/) by Matt Warren\n\n### Monitoring\n* TODO\n\n### Investigations\n* [Как я провёл две недели в поисках утечки памяти](http://be9.ru/2015/09/12/memory-leak.html) by Олег Дашевский. \"Это история о поисках утечки памяти. Она довольно длинная, потому что я привожу массу подробностей. Почему я решил описать свои приключения? Дело не только в практическом стремлении сохранить все мелкие скрипты и куски кода. Мне на минуточку показалось, что это и есть UNIX way – то, что меня вело. Каждый шаг был связан с очередной небольшой утилитой или библиотекой, которая хорошо решает свою задачу. И я в итоге достиг успеха.\" 🇷🇺\n* [How I spent two weeks hunting a memory leak in Ruby](http://www.be9.io/2015/09/21/memory-leak/) by Oleg Dashevskii. \"This is a story about hunting a memory leak. A long story, because I go into much detail. Why describe my adventures? Not that I wanted to save all those tiny code pieces and scripts only. It rather occurred to me that it was UNIX way which I had pursued. Every step was related to yet another small utility, or a library, which solves its task well. And finally I succeeded.\" 🇺🇸\n\n### JIT Optimizations\n* TODO\n\n### Threading\n* TODO\n\n### Memory\n* [Debugging hidden memory leaks in Ruby](https://samsaffron.com/archive/2019/10/08/debugging-unmanaged-and-hidden-memory-leaks-in-ruby) - \"This article covers tools and tricks you can use to attack leaks that you can not easily introspect in Ruby. In particular I will discuss mwrap, heaptrack, iseq_collector and chap.\" by Sam Saffron (2019-10-15) 🇺🇸\n* [What causes Ruby memory to bloat](https://www.joyfulbikeshedding.com/blog/2019-03-14-what-causes-ruby-memory-bloat.html) - How memory allocation works in Ruby and how to improve it with malloc_trim API. 🇺🇸\n* [The Definitive Guide to Ruby Heap Dumps, Part I](https://blog.codeship.com/the-definitive-guide-to-ruby-heap-dumps-part-i/) - “When you can’t reproduce memory bloat, here’s how to work with a heap dump.” by Richard Schneeman (Last updated: 2017-06-19) 🇺🇸\n* [The Definitive Guide to Ruby Heap Dumps, Part II](https://blog.codeship.com/the-definitive-guide-to-ruby-heap-dumps-part-ii/)- “When you can’t reproduce memory bloat, here’s how to work with a heap dump.” by Richard Schneeman (Last updated: 2017-06-19) 🇺🇸\n\n### RubyVM Internals\n* TODO\n\n## Official Ruby bugtracker notes\n\n### CPU Improvements\n* TODO\n\n### Memory Improvements\n* 2019\n  * [Introduce malloc_trim(0) in full gc cycles](https://bugs.ruby-lang.org/issues/15667) - Per Hongli's excellent article it looks like malloc_trim can help tremendously with memory bloat issues. 🇺🇸\n* 2018\n  * [set M_ARENA_MAX for glibc malloc](https://bugs.ruby-lang.org/issues/14759) - Not everybody benefits from jemalloc and the extra download+install time is not always worth it. Lets make the user experience for glibc malloc users better, too. 🇺🇸\n  * [Use jemalloc by default?](https://bugs.ruby-lang.org/issues/14718) 🇺🇸\n\n## Interesting performance talks not about Ruby\n* [Emery Berger](https://www.youtube.com/watch?v=r-TLSBdHe1A) 🇺🇸\n* [Carl Cook](https://www.youtube.com/watch?v=NH1Tta7purM) 🇺🇸\n* [Brendan Gregg blog](http://www.brendangregg.com/) 🇺🇸\n","projects_url":"https://awesome.ecosyste.ms/api/v1/lists/raventid%2Fawesome-ruby-performance/projects"}