Ответы пользователя по тегу Sinatra
  • Какова последовательность поиска утечек памяти на Ruby?

    2ord
    @2ord
    Обычно это не утечки памяти, а раздувание памяти из-за бездумного программирования: чтение огромного JSON целиком в память, чтение всех записей с БД в память (Product.all) и пр.

    Есть gem, с которого предлагаю начать расследование: derailed_benchmarks. С его помощью можно определить сколько памяти занимает приложение при старте, включая фреймворк RoR. См. как подключать к Sinatra.

    bundle exec derailed bundle:mem

    bundle exec derailed bundle:objects

    Так можно проследить за потреблением памяти во времени:
    bundle exec derailed exec perf:mem_over_time

    scout_apm - с ним можно определять какие операции ведут к увеличению потребления памяти приложения.

    При расследовании на локальной машине стоит учесть, что если работать с локальными тестовыми выборками данных, то и потребление памяти может оказаться существенно меньше из-за разницы в объеме данных.

    Добавлено:
    Нашел еще хорошее сравнение инструментов для определения производительности, в нагрузку:
    Rails Performance Monitoring Tools Compared

    Добавлено:
    Еще простой способ уменьшить потребление памяти:
    Добавить гем
    gem 'jemalloc'
    Ответ написан
  • Оправдано ли использование MVC в небольшом веб-приложении?

    2ord
    @2ord
    Использование MVC неоправданно для создания микросервисов и малых проектов POC.
    Есть различные микро-фреймворки, являющиеся надстройкой над базовым Rack: https://www.sitepoint.com/ruby-microframeworks-round/
    Они производительнее Ruby on Rails из-за своей легковесности.
    Ответ написан
    Комментировать