TGViewer
YeaHub Tech YeaHub Tech @yeahub_tech · 412 subscribers
Post #237 165
#Ruby

🔖 Ruby пожирает память: как управлять ресурсами без миграции на Go

Пока разработчики спорят о скорости языков, Ruby-приложения тихо съедают гигабайты оперативки. Shopify, GitHub, Basecamp решили эту проблему без смены технологического стека.

Секрет — правильное управление памятью, а не переход на другие языки.


📎 Что происходит прямо сейчас:

Shopify — обрабатывает миллионы заказов на Ruby с оптимизированным потреблением памяти. Правильная работа с GC сократила расход ОЗУ в 3 раза.

GitHub — 100M+ пользователей, монорепозиторий на Ruby работает быстрее многих микросервисов. Мемоизация и символы творят чудеса.

Basecamp — монолит на Ruby стабильно работает 20+ лет. DHH доказывает: проблема не в языке, а в подходе к оптимизации.


📎 Как работает память в Ruby:

Object Space + Heap
Все объекты размещаются в куче. При создании нового объекта выделяется память в объектном пространстве.

Mark & Sweep GC
Сборщик мусора помечает используемые объекты, затем очищает неиспользуемые. Два этапа: маркировка → очистка.

Memory Bloat Problems
Раздувание памяти, утечки из-за случайных ссылок, избыточное создание объектов перегружает GC.


📎 Боевые техники оптимизации:

Мемоизация против дублирования
def expensive_operation
@result ||= calculate_expensive_operation
end


Символы вместо строк
status = :active  # Память экономится
status = "active" # Расточительно


Контроль сборщика мусора
GC.start(full_mark: true, immediate_sweep: true)
puts GC.stat # Мониторинг производительности



📎 Инструменты профилирования:

• Memory Profiler — точная диагностика расхода памяти
• ObjectSpace — анализ объектов в runtime
• GC.stat — статистика сборщика мусора в реальном времени
• Пулы объектов — переиспользование вместо создания/уничтожения

Ruby не медленный язык — просто разработчики не умеют с ним работать. Правильное управление памятью решает 80% проблем производительности.


📎 Статья

🎙 Новости

📝 База вопросов
  • 🔥 3
More from @yeahub_tech
  1. Oct 9, 2026#Собес #pipeline #ci #stage 🤔 Что происходит при автоматической сборке feature-ветки на s…
  2. Oct 8, 2026#course #задачи #тесты 📚 JavaScript. A3 Задачи Задачи на программирования на языке JavaSc…
  3. Oct 7, 2026#course #начинающие 📚 Твой Golang Твой Golang — это идеальный старт для освоения языка. П…
  4. Oct 5, 2026🧑‍💻 Вопросы с собесов для Node.js Разработчика 1. Как использовать Service Workers для р…
  5. Oct 2, 2026#Собес #transaction #propagation #required 🤔 Что такое propagation у транзакций и какие т…
  6. Oct 1, 2026#book #book 📚 Библия C#. 6-е изд. Автор: Михаил Фленов Это настольная книга программиста,…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →