Последний визит: 14 октября 2026 03:36
Если будет место: новый экспериментальный JIT в Ruby 4.0 против YJIT на одном сервисе. Цифры уже есть, но предупреждаю, вывод будет скучный.
Сделали гибрид. В Postgres партиции по месяцам, держим 13 месяцев, всё старше раз в месяц уезжает в ClickHouse и отцепляется. Перенос истории шёл 9 но...
Принеси график нагрузки на базу до и после выноса очереди. Без него разговор про поллинг будет на ощущениях
На вебе у меня вышло похоже: на нагрузочном тесте с YJIT медиана на 4.0 почти та же, что на 3.4, а новый JIT медленнее YJIT процентов на 15. Он молодо...
Для понимания масштаба: объект User с десятком колонок вместе со строками занимает в Ruby порядка нескольких килобайт. 300 тысяч таких - уже гигабайт ...
Раз Views 2,3 секунды, а база 96 мс, смотрите в рендер. Поставьте rack-mini-profiler вместе с stackprof и откройте страницу с `?pp=flamegraph`, станет...
Цифры по Ruby 4.0 принесёте? Я мерил на синтетике и на одном API: YJIT на 4.0 против 3.4 в пределах 2-3 процентов по p50, почти шум. Новый JIT на том ...
Там три потребителя. `.each` без батчей грузит все 2 млн объектов Active Record разом, каждый объект это сотни байт плюс строки атрибутов. Потом вся C...
Я, конечно, замерял. Ноутбучная 62 слова в минуту, механика 65 на третьей неделе привыкания, это в пределах шума. Зато исправлений опечаток в редактор...
Цифры для спора. Я как-то наливал по 10 млн строк в две таблицы на 16-м: индекс первичного ключа на bigint вышел 214 МБ, на UUIDv4 около 390 МБ, и вст...
Сейчас вы тянете в Ruby больше полумиллиона объектов, чтобы сложить числа. Группировка в базе: [code=ruby] totals = OrderItem .joins(:order) .wher...
Ключ кеша строится из `order.cache_key_with_version`, а версия это `updated_at` заказа. Позиция обновилась, заказ нет, ключ тот же, отдаётся старый фр...
kirill_spb, `uniq` с блоком у меня вышел 0,24 с против 0,21 у `add?`, это в пределах шума. Я бы тоже взял `uniq`, он понятнее.
Да, `include?` каждый раз проходит массив целиком, на 200 тысячах это квадрат. Нужен `Set` и его `add?`, который возвращает nil для уже виденного элем...