Media is too big
VIEW IN TELEGRAM
Привет performance lovers! Сегодня снова выходной, снова принес вам водицы. Это уже озеро в горах, холодное, чистое, красивое — чтобы вы отдохнули, подумали свои мысли и были готовы к любым алертам завтра, встречая их с улыбкой 🤗
Из нового — готовили с Мишей Жилиным доклад на Heisenbug и узнал из него как использовать git bisect с тестами производительности. Шел 40-й год жизни, я узнал про эту команду, которая была в git чуть ли не с начала времен🤦♂️
В рассказе Миши столько прикольных нагрузочный историй! Если вы будете на конференции завтра, то зайдите к нему, привет передайте
Из нового — готовили с Мишей Жилиным доклад на Heisenbug и узнал из него как использовать git bisect с тестами производительности. Шел 40-й год жизни, я узнал про эту команду, которая была в git чуть ли не с начала времен
# Вместо good/bad задаём свои слова: fast и slow
# Для поиска регрессий производительности
git bisect start --term-old fast --term-new slow
git bisect fast v5.17 # эта версия быстрая
git bisect slow v5.18 # эта — медленная
git bisect run ./bench.sh # exit 0 = fast, exit 1 = slow
# → 56a4d67c264e — коммит, замедливший систему
В рассказе Миши столько прикольных нагрузочный историй! Если вы будете на конференции завтра, то зайдите к нему, привет передайте
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4
https://performance.shopify.com/pages/services
Интересная бизнес модель у отличной платформы создания интернет магазинов shopify — можно нанять их команду производительности или команду партнеров 💡
Обычно же это просто поддержка, люди пишут задачу, задача доходит до тебя и разбираешься в ней. А тут целый найм
Как они добились и как обосновывают?
https://www.shopify.com/enterprise/blog/store-speed-conversion
Посчитали, что 100 ms задержки к LCP снижают конверсию (вероятность покупки) на 3.5%
А 32 ms к INP также снижают эту вероятность на 1.5%
И чтобы это посчитать они сделали сервис аналитики производительности (встроенный в систему)
https://help.shopify.com/en/manual/online-store/web-performance/web-performance-reports
Отчёт небольшой, использует хранилище Google и просто показывает метрики из него, эти метрики Google и так собирает со всех Google-устройств и Chrome-ов
💰 Их фишка, что они смогли собрать ключевую метрику Conversion rate по сайтам клиентов и соотнести ее с performance метриками
Для этого им скорее всего пришлось постараться и сделать непростой механизм сбора бизнес метрик. Сохранить и обогатить CrUX метрики. Выстроить сеть партнеров с perf-компетенциями. И запустить все
Крутой проект, сколько рабочих мест создано! И как же это красиво подано 🔥
Интересная бизнес модель у отличной платформы создания интернет магазинов shopify — можно нанять их команду производительности или команду партнеров 💡
Обычно же это просто поддержка, люди пишут задачу, задача доходит до тебя и разбираешься в ней. А тут целый найм
Как они добились и как обосновывают?
https://www.shopify.com/enterprise/blog/store-speed-conversion
The trend is clear: for every 100 milliseconds slower a store loads, conversion tends to be about 3.5% lower.
Посчитали, что 100 ms задержки к LCP снижают конверсию (вероятность покупки) на 3.5%
For every 32 milliseconds slower a store responds to interactions, conversion tends to drop by about 1.5%.
А 32 ms к INP также снижают эту вероятность на 1.5%
И чтобы это посчитать они сделали сервис аналитики производительности (встроенный в систему)
https://help.shopify.com/en/manual/online-store/web-performance/web-performance-reports
Отчёт небольшой, использует хранилище Google и просто показывает метрики из него, эти метрики Google и так собирает со всех Google-устройств и Chrome-ов
💰 Их фишка, что они смогли собрать ключевую метрику Conversion rate по сайтам клиентов и соотнести ее с performance метриками
Для этого им скорее всего пришлось постараться и сделать непростой механизм сбора бизнес метрик. Сохранить и обогатить CrUX метрики. Выстроить сеть партнеров с perf-компетенциями. И запустить все
Крутой проект, сколько рабочих мест создано! И как же это красиво подано 🔥
🔥8
Привет performance lovers! Я начал забывать
Двадцать лет назад я зачитывался историями про ученых Греции, про физиков и математиков. Поражала их память и объёмы информации в их голове
Тогда я делал одно упражнение по вечерам — возвращаясь домой вспоминал весь свой день в деталях. Только один день, но очень детально
И это помогало быстро вспоминать что было вчера и неделю назад и месяц
Были и специальные заучивания. В университете у меня была специальная книжка куда я выписывал номера телефонов всех своих знакомых. Я фанат блокнотов и ручек и записей. А выписывание помогало запоминать их
Как-то работая в НПО я заучил и запомнил всех коллег по фото и имени. Не помню сколько человек это было, думаю пару недель учил просматривая карточки в SharePoint снова и снова. Там можно было делать что-то типа SQL запросов к данным и создавать отчёты — только с фото, только с именем, и с фото и с именем
А сегодня мне друг напомнил про поход к водопаду рядом с Иджеваном, а я не помню где это, где Иджеван? Какой из походов это был?
Буду снова ходить домой пешком и по пути вспоминать весь свой день в деталях. И записки надо будет вести активнее, рисунки и схемы рисовать, не полагаться на Google, который найдет.
Надеюсь, когда мы встретимся с вами и возникнет вопрос — а помнишь … — буду помнить
Двадцать лет назад я зачитывался историями про ученых Греции, про физиков и математиков. Поражала их память и объёмы информации в их голове
Тогда я делал одно упражнение по вечерам — возвращаясь домой вспоминал весь свой день в деталях. Только один день, но очень детально
И это помогало быстро вспоминать что было вчера и неделю назад и месяц
Были и специальные заучивания. В университете у меня была специальная книжка куда я выписывал номера телефонов всех своих знакомых. Я фанат блокнотов и ручек и записей. А выписывание помогало запоминать их
Как-то работая в НПО я заучил и запомнил всех коллег по фото и имени. Не помню сколько человек это было, думаю пару недель учил просматривая карточки в SharePoint снова и снова. Там можно было делать что-то типа SQL запросов к данным и создавать отчёты — только с фото, только с именем, и с фото и с именем
А сегодня мне друг напомнил про поход к водопаду рядом с Иджеваном, а я не помню где это, где Иджеван? Какой из походов это был?
Буду снова ходить домой пешком и по пути вспоминать весь свой день в деталях. И записки надо будет вести активнее, рисунки и схемы рисовать, не полагаться на Google, который найдет.
Надеюсь, когда мы встретимся с вами и возникнет вопрос — а помнишь … — буду помнить
❤7
Привет любители производительности! Участвую во взаимном продвижении IT-чатов и каналов — "IT в деле" В сборке есть разные тематики
Что внутри:
🧑💻 Каналы о программировании и разработке: Python, CSS, HTML, Java и Swift
👨💻 GameDev и каналы о QA тестироварии, создание игр и тестирование (мы туть)
🤖 Авторские каналы и вайбкодинг: IT & AI, простые заметки с проектов, работа с нейросетями
🤩 Информационная безопасность: многое узнаете о работе хакеров
Много интересного! Выберите интересные вам каналы или подпишитесь на всю сборку
Что внутри:
🧑💻 Каналы о программировании и разработке: Python, CSS, HTML, Java и Swift
Много интересного! Выберите интересные вам каналы или подпишитесь на всю сборку
Please open Telegram to view this post
VIEW IN TELEGRAM
Telegram
IT в деле
You’ve been invited to add the folder “IT в деле”, which includes 42 chats.
🔥7
Привет performance lovers!
Все мы знаем, что профилирование это небесплатная операция, она имеет свою performance цену. Давайте посмотрим, как это может выглядеть на примере профайлера с самыми агрессивными настройками профилирования (включить все)
🔴 Видно что все потоки красные и заблокированы
🟡 Но на Flame Graphs и в стрек-трейсах ничего нет — как будто базовый метод-обертка взял и затормозил
Как такое возможно?
А возможно — профайлер не показывает в данных профилирования сам себя и накладные расходы на профилирование
Я включил все probes и загрузка всех probes замедлила все потоки — без дополнительных инструментов такое не увидеть, но можно было предположить, что так будет
Удачного профилирования!
Все мы знаем, что профилирование это небесплатная операция, она имеет свою performance цену. Давайте посмотрим, как это может выглядеть на примере профайлера с самыми агрессивными настройками профилирования (включить все)
🔴 Видно что все потоки красные и заблокированы
🟡 Но на Flame Graphs и в стрек-трейсах ничего нет — как будто базовый метод-обертка взял и затормозил
Как такое возможно?
А возможно — профайлер не показывает в данных профилирования сам себя и накладные расходы на профилирование
Я включил все probes и загрузка всех probes замедлила все потоки — без дополнительных инструментов такое не увидеть, но можно было предположить, что так будет
Удачного профилирования!
👍6❤3
This media is not supported in your browser
VIEW IN TELEGRAM
Привет performance lovers!
Снова выходной, снова принёс вам водицы. Это река Изар, слышно как шумят пороги на ней. Неделя была интересной, теперь здорово и отдохнуть
Несколько уроков этой недели
Порядок инструкции в NGinx конфиге важен, каждая следующая дополняет или переопределяет предыдущие. И например нельзя задать размер map-ов уже после определения любой map-ы
Правила NGinx location с регулярными выражениями имеют более высокий приоритет, чем правила location с точным совпадением. Это не было очевидно. В результате, все location правила переписал на регулярки
Если размер JVM MetaSpace недостаточно большой, то при выполнении GC для MetaSpace, эта область памяти очищается, и JVM начинает по новой компилировать код (это пока не 100% истина, но основная рабочая гипотеза отладки одного случая с очень активной компиляцией кода)
Отличных вам выходных! 🤗
Снова выходной, снова принёс вам водицы. Это река Изар, слышно как шумят пороги на ней. Неделя была интересной, теперь здорово и отдохнуть
Несколько уроков этой недели
Порядок инструкции в NGinx конфиге важен, каждая следующая дополняет или переопределяет предыдущие. И например нельзя задать размер map-ов уже после определения любой map-ы
Правила NGinx location с регулярными выражениями имеют более высокий приоритет, чем правила location с точным совпадением. Это не было очевидно. В результате, все location правила переписал на регулярки
Если размер JVM MetaSpace недостаточно большой, то при выполнении GC для MetaSpace, эта область памяти очищается, и JVM начинает по новой компилировать код (это пока не 100% истина, но основная рабочая гипотеза отладки одного случая с очень активной компиляцией кода)
Отличных вам выходных! 🤗
👍4🔥1
Привет performance lovers!
Представьте, что вы применили оптимизацию, но через минуту стало только хуже, и через пять минут — тоже, и через десять...
🫣 Что это, почему так?
🤓 Все хорошо. Это кеши, и первое время они прогреваются и наполняются. Вот видно, что через 17-20 минут они заработали
☺️ Но первые 10 минут я хотел их выключить. Решил, что уже вечер и надо перекусить перед таким откатом, и пошёл за чаем. А когда вернулся — всё уже работало как надо
🤗 Пейте чай!
Представьте, что вы применили оптимизацию, но через минуту стало только хуже, и через пять минут — тоже, и через десять...
🫣 Что это, почему так?
🤓 Все хорошо. Это кеши, и первое время они прогреваются и наполняются. Вот видно, что через 17-20 минут они заработали
☺️ Но первые 10 минут я хотел их выключить. Решил, что уже вечер и надо перекусить перед таким откатом, и пошёл за чаем. А когда вернулся — всё уже работало как надо
🤗 Пейте чай!
😁6🔥1
Привет, performance lovers!
Новая загадка с перцентилями
Было применено кеширование, в этом случае кеширование ответов на входящие HTTP запросы, и часть ответов теперь будут кешироваться в браузере, даже не на сервере. И после применения — числа на графиках с перцентилями серверных ответов пошли вверх
Это хорошо. Так и должно быть
Как вы думаете почему это на графике времени отклика есть такой эффект? И какой еще график стоит посмотреть для получения полной картины?
Новая загадка с перцентилями
Было применено кеширование, в этом случае кеширование ответов на входящие HTTP запросы, и часть ответов теперь будут кешироваться в браузере, даже не на сервере. И после применения — числа на графиках с перцентилями серверных ответов пошли вверх
Это хорошо. Так и должно быть
Как вы думаете почему это на графике времени отклика есть такой эффект? И какой еще график стоит посмотреть для получения полной картины?
🔥1
Привет performance lovers!
Это моя мастерская по настройке переключателей скоростей. Состоит из стульев и метелки🤦♂️
Начинал настройку я на балконе, но там холодно🥶 и света нет. Поэтому постепенно мастерская переехала в комнату
Переключатели настраиваются так, что сначала задний, а потом передний. Но чтобы настроить задний, передний тоже нужен — на среднюю звезду надо как-то поставить все. Разных зависимостей масса
При настройке переднего есть гайды👨💻 с 10-ю шагами, но без описания того а какое состояние вообще исходное — когда все работает, но что-то не так или оно какое-то конкретное — в таких гайдах не хватает еще шагов 0, 1.5, 2.5, ... и их должно быть 21 а не 10
А к чему это я тут ворчу?
В сообществе бывают задают вопросы не про настройку такой "простой" ерунды как переключатель скоростей. А про настройку параметров сложной системы где десятки зависимых элементов, или про инструмент где тоже десятки параметров. В вопросах почти никогда нет всего контекста и текущего состояния. Или исходного состояния. И на такие вопросы как-то отвечают, и ответы даже годные и даже помогают
Я теперь просто не представляю, как людям удается давать годные ответы только по неполному текстовому описанию? И мои ожидания от детальности гайдов по настройке чего-то теперь поднялись на новый уровень. Надо будет сделать что-то по нагрузке
А как я настроил эти перeключатели?
1️⃣ Посмотрел несколько видео, раз 10 посмотрел (часы)
2️⃣ Покрутил, собрал, разобрал, собрал, разобрал (десятки раз)
3️⃣ Снова посмотрел руководства
4️⃣ Вот начало что-то получаться, но все равно не уверен, что правильно
5️⃣ Надо будет поездить и потом перенастроить
Это моя мастерская по настройке переключателей скоростей. Состоит из стульев и метелки
Начинал настройку я на балконе, но там холодно
Переключатели настраиваются так, что сначала задний, а потом передний. Но чтобы настроить задний, передний тоже нужен — на среднюю звезду надо как-то поставить все. Разных зависимостей масса
При настройке переднего есть гайды
А к чему это я тут ворчу?
В сообществе бывают задают вопросы не про настройку такой "простой" ерунды как переключатель скоростей. А про настройку параметров сложной системы где десятки зависимых элементов, или про инструмент где тоже десятки параметров. В вопросах почти никогда нет всего контекста и текущего состояния. Или исходного состояния. И на такие вопросы как-то отвечают, и ответы даже годные и даже помогают
Я теперь просто не представляю, как людям удается давать годные ответы только по неполному текстовому описанию? И мои ожидания от детальности гайдов по настройке чего-то теперь поднялись на новый уровень. Надо будет сделать что-то по нагрузке
А как я настроил эти перeключатели?
1️⃣ Посмотрел несколько видео, раз 10 посмотрел (часы)
2️⃣ Покрутил, собрал, разобрал, собрал, разобрал (десятки раз)
3️⃣ Снова посмотрел руководства
4️⃣ Вот начало что-то получаться, но все равно не уверен, что правильно
5️⃣ Надо будет поездить и потом перенастроить
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥5❤1
Привет performance lovers!
Сегодня погода хорошая, но дома сижу. Решил проверить пределы LinkedIn и отправил приглашений коллегам, получилось 442. Мне понравилось тем, что все ждал как меня забанят в📱 , а оно не случилось
Возможно, при работе с мобильным приложением штрафы не так сильно начисляются, как при работе из браузера
Возможно, дело в том, что меня уже банили раза три, а я потом возвращался или подтверждал, что я живой человек
Возможно, дело в том, что приглашения коллегам, а не совсем случайным людям, и я их знаю, или хотя бы видел, в чате, где-то
Еще поменял описание на
🔮 Most performance issues are predictable
давно уже поменял, но в поиске все еще пишется
💻 Performance engineer at JetBrains
а иногда
💻 Performance engineer at YouTrack
это использовал после JetBrains
Кеши в LinkedIn на столько суровы, что пока не прогрелись. И видимо, для комментариев, реакций и профиля разные кеши — по разному отображается потому что
💡 Возможно, и нам стоит быть смелее в кешировании
И раз уж мы про линк, то добавляйтесь, всем добра!
📱 https://www.linkedin.com/in/v8v
Чтобы это было вам полезно — напишите о себе в комментариях и оставьте ссылку на linkedin для взаимоконнектов
Сегодня погода хорошая, но дома сижу. Решил проверить пределы LinkedIn и отправил приглашений коллегам, получилось 442. Мне понравилось тем, что все ждал как меня забанят в
Возможно, при работе с мобильным приложением штрафы не так сильно начисляются, как при работе из браузера
Возможно, дело в том, что меня уже банили раза три, а я потом возвращался или подтверждал, что я живой человек
Возможно, дело в том, что приглашения коллегам, а не совсем случайным людям, и я их знаю, или хотя бы видел, в чате, где-то
Еще поменял описание на
🔮 Most performance issues are predictable
давно уже поменял, но в поиске все еще пишется
а иногда
это использовал после JetBrains
Кеши в LinkedIn на столько суровы, что пока не прогрелись. И видимо, для комментариев, реакций и профиля разные кеши — по разному отображается потому что
💡 Возможно, и нам стоит быть смелее в кешировании
И раз уж мы про линк, то добавляйтесь, всем добра!
Чтобы это было вам полезно — напишите о себе в комментариях и оставьте ссылку на linkedin для взаимоконнектов
Please open Telegram to view this post
VIEW IN TELEGRAM
❤2
Привет performance lovers! Перефразируя классику:
(ближе к зиме), но так далеко
И, часто, только на Performance Review мы получим объективную обратную связь о себе. Это как запускать тесты раз в год или пару раз
❓ Как бы получить обратную связь побыстрее, подумал я
✅ И применил вот эти руководства 📱 https://github.com/DenisSergeevitch/agents-best-practices от 📱 @denissexy для создания агентов, которые будут делать критическое ревью моих performance issues (пока только этого)
Получилось очень хорошо. Я прямо очень доволен. На вход агенту подал описание грейдов и мои текущие цели, о которых есть явная договоренность с менеджером. И теперь мои дела оцениваются агентом на соответствие этим целям
Агент принимает на вход как я описал проблему производительности, и я получаю оценку — достойная ли это проблема, хорошо ли описана
Я заметил, что появились коллеги, которые читают дефекты и ставят лайки. Лайки от коллег это отлично 🤗, а теперь будет и критика от Junie, описание задачи передаю просто ссылкой на задачу, а агент через MCP к💻 YouTrack получает детали
Рекомендую эти скилы
📱 https://github.com/DenisSergeevitch/agents-best-practices
для создания агентов
Просто по инструкции сделал. Получилось хорошо. А потом повторно написал — а теперь обнови агента и критически оцени его — и получилось еще лучше
Performance review близко
(ближе к зиме), но так далеко
И, часто, только на Performance Review мы получим объективную обратную связь о себе. Это как запускать тесты раз в год или пару раз
Получилось очень хорошо. Я прямо очень доволен. На вход агенту подал описание грейдов и мои текущие цели, о которых есть явная договоренность с менеджером. И теперь мои дела оцениваются агентом на соответствие этим целям
Агент принимает на вход как я описал проблему производительности, и я получаю оценку — достойная ли это проблема, хорошо ли описана
Я заметил, что появились коллеги, которые читают дефекты и ставят лайки. Лайки от коллег это отлично 🤗, а теперь будет и критика от Junie, описание задачи передаю просто ссылкой на задачу, а агент через MCP к
Рекомендую эти скилы
для создания агентов
Просто по инструкции сделал. Получилось хорошо. А потом повторно написал — а теперь обнови агента и критически оцени его — и получилось еще лучше
Please open Telegram to view this post
VIEW IN TELEGRAM
GitHub
GitHub - DenisSergeevitch/agents-best-practices: Provider-neutral Agent Skill for Codex, Claude Code, and agentic harness design.
Provider-neutral Agent Skill for Codex, Claude Code, and agentic harness design. - DenisSergeevitch/agents-best-practices
❤2👍1