Рубрика «профилирование»

Приветствую всех, кто хочет делать свой код быстрым и оптимальным. В этой статье мы расссмотрим несколько простых способов, как можно оптимизировать программу при работе со структурами.

Размещение данных в памяти. L1, L2, L3 кэши и RAM

Мы все знаем, что данные (переменные, поля классов и т.д.) размещаются в "памяти". Но зачастую программист даже не задумывается, что именно представляет из себя эта абстрактная "память". Давайте рассмотрим этот вопрос чуть глубже, посколько понимание этого позволит ускорить код на двузначное число процентов.

Читать полностью »
История одного бага - 1

Пожалуй, самые неприятные баги – те, что воспроизводятся один раз из ста. Их не пощупать, не продебажить и даже не проверить результат.

Так и тут прилетает мне баг от тестировщика с описанием:

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

Я потратил месяц на создание веб-сайта в Docker и теперь готов поделиться ужасными историями.

У меня есть проблема.

Мой веб-сайт (на котором была опубликована эта статья) в основном обслуживается одним двоичным файлом Rust. Он стал слишком длинным. Каждый раз, когда мне нужно внести изменение, я должен:

  1. Собрать новую статически компонуемую библиотеку (с --target=x86_64-unknown-linux-musl)

  2. Скопировать её на сервер

  3. Перезапустить веб-сайт

Ситуация, мягко говоря, неидеальная.

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

eBPF vs BitDive: Сравнение решений для системного и прикладного профилирования

Разбираем разницу между eBPF и BitDive: системное профилирование против глубокого анализа Java-приложений. Что выбрать для продакшена?

Зачем вообще нужен профайлинг в проде?

Производительность приложений — не абстракция. Это ошибки, таймауты, утекающие пользователи и ненужные расходы. Но чтобы понять, что именно тормозит, мало просто знать, что "CPU загружен". Нужна детализация: какой сервис, какой метод, какой запрос, какие параметры.

Здесь в игру вступают два подхода:

Привет!

С момента предыдущей публикации прошел год, и наступил момент закрыть гештальт, возникший, в том числе, по результатам ваших комментариев. А именно: можно ли вообще обойтись без внешних устройств при решении задачи профилирования активности пользователей по данным энергопотребления их устройств?

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

Perforator: новая система непрерывного профилирования теперь в опенсорсе - 1

Привет! Сегодня мы выложили в опенсорс Perforator — систему непрерывного профилирования (continuous profiling), которую используем внутри Яндекса для анализа производительности большинства сервисов.

В Github‑репозиторииЧитать полностью »

Миллионы пользователей ежедневно заходят на Яндекс Маркет. И одна из ключевых задач сервиса — показывать им точные сроки доставки на поиске и в корзине. При пиковых нагрузках это около 40 тысяч запросов в секунду. Как обеспечить столь быструю и точную обработку данных о доставке?

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

Профилирование — это неотъемлемая часть любых работ по оптимизации кода или производительности программ. Любой опыт, любые знания в сфере оптимизации производительности, которые уже у вас есть, не принесут особой пользы в том случае, если вы не знаете о том, где их применить. В результате оказывается, что поиск узких мест приложений может помочь в деле решения проблем производительности, поможет сделать это быстро и приложив не слишком много усилий.

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

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