Рубрика «производительность»

TL;DR: В этой статье я хочу показать, почему распространённая фраза "не занимайтесь преждевременной оптимизацией" почти всегда используется неправильно, особенно в современных фронтенд-проектах. Я посмотрю на исторический контекст, разберу, что именно Кнут называл оптимизацией, и почему многие вещи, которые считаются "преждевременной оптимизацией", на деле — нормальная инженерная дисциплина.

Читать полностью »

В современных корпоративных системах обработки отчетности (например, XBRL-форматы для регуляторов или банков) одна из ключевых задач это эффективное хранение и загрузка больших объёмов структу­рированных данных. В экосистеме .NET Core такие данные часто представлены в виде объектов с комплексными связями, что требует продуманной стратегии сериализации и десериализации.

Одним из таких случаев является работа с объектами ReportItem объединяющими в себе названия бизнес-факты отчета и координаты в гиперкубе (временной охват, измерения и атрибуты). При создании отчетов данные загружаются в память в виде словаря Читать полностью »

Когда-то ты спорил на форумах о том, что лучше — tabs или spaces, а теперь просто настраиваешь .editorconfig и идешь пить кофе. Этот текст — не про карьеру, не про зарплаты и не про мотивацию. Это про то, как постепенно меняется восприятие кода, ответственности и хаоса, когда годы коммитов превращают энтузиазм в инженерное спокойствие. Здесь не будет морали — только наблюдения, немного иронии и чуть-чуть боли.

Читать полностью »

Привет! Хочу поделиться библиотекой, которую написал как открытую альтернативу MediatR после новостей о его планируемой коммерциализации.

Предыстория

2 апреля 2025 года Джимми Богард объявил о планах коммерциализации своих популярных библиотек AutoMapper и MediatR для "обеспечения долгосрочной устойчивости". Для многих это стало неожиданностью - библиотеки, на которых построены тысячи проектов, могут стать платными.

Читать полностью »

Почему тормозят AMD Epyc - 1

Нам надо было закупить High-CPU, но так, чтобы это было одинаковое корпоративное железо для всех наших дата-центров по миру.

Читать полностью »

Представим, что вы запустили в облаке или на своем оборудованиии обучение модели. Выбрали конфигурацию с A100, H100 или L40S, может, даже с RTX 4090. Запускаете обучение модели, ждете, что процесс пойдет как по маслу. Но вместо э��ого в инструментах мониторинга видите, что GPU загружен на 40–60%, а то и меньше.

Причина не в «кривом коде» и не в том, что GPU «не тянут». Проблема глубже: производительность AI-кластера определяется не пиковыми терафлопсами, а самым слабым звеном в цепочке ввода-вывода. Даже самый быстрый GPU беспомощен, если данные не успевают до него «доехать». Он просто ждет.

Читать полностью »

TL;DR
  • Провели РКИ на реальных задачах в крупных OSS-репозиториях: 16 опытных контрибьюторов, 246 задач (исправления, фичи, рефакторинг), на каждую задачу случайно разрешали/запрещали ИИ.

  • Инструменты при «разрешено»: в основном Cursor Pro + Claude 3.5/3.7; при «запрещено» — обычная работа без генеративного ИИ.

  • Главный итог: с ИИ задачи выполнялись в среднем на 19% дольше; качество PR сопоставимо между условиями.

  • Перцепция расходится с данными: разработчики ожидали ускорение (~24%) и постфактум тоже считали, что ускорились (~20%).

  • Читать полностью »

Делюсь практическим опытом внедрения Uptrace v2.0 — от разворачивания до оптимизации запросов. С цифрами, кодом и реальными кейсами.

TL;DR

Uptrace v2.0 использует новый JSON-тип ClickHouse для хранения трейсов, что даёт 10x ускорение запросов. Показываю на практике: установка за 5 минут, настройка трансформаций данных, экономия на retention policies. Бенчмарки на 500M span'ах: запросы стали выполняться за 0.3-0.5 сек вместо 4-7 сек.

Почему я вообще это затеял

Читать полностью »

«Rust — это когда ты контролируешь каждый байт.
Go — это когда ты делаешь сервис, а не борешься с компилятором.»

Введение

Rust и Go часто оказываются по разные стороны инженерных холиваров.
Кто‑то называет Go «языком для продакшна», кто‑то утверждает, что Rust — «единственный способ спать спокойно после деплоя».

Я работал с обоими языками: писал микросервисы на Go, системы обработки событий и сетевые агенты на Rust.
В этом посте — не теоретическое сравнение, а практическое: где Rust реально оправдан, а где Go дает фору по скорости разработки и стабильности.


Производительность

Читать полностью »

Запросы к БД

Запросы к БД

PostgreSQL против 10 миллионов записей: оптимизация запросов, которая спасла наш проект

Пролог: Когда база данных говорит «нет»

Это был обычный понедельник. Я пил кофе, проверял почту, и вдруг — волна уведомлений в Slack. «Сайт не грузится!», «Отчеты зависли!», «Что происходит?».

Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js