2.2Kпросмотров
94.5%от подписчиков
19 января 2026 г.
Score: 2.5K
Давно не писал про CPUpro и мои продвижения в профилировании. Я не перестал этим заниматься — скорее наоборот. За это время очень многое поменялось, и я продвинулся дальше, чем ожидал. Несколько месяцев назад я сделал, в какой-то степени, безумный шаг. Я стал записывать каждую аллокацию как отдельное событие. Делал это и раньше, но теперь нашёл способ делать это, не убивая рантайм. Однако этого оказалось недостаточно — нужно было ещё научиться работать с новым классом данных. В итоге я значительно переписал CPUpro: его модель обработки и сам подход к работе с данными. Параллельно я закончил ряд экспериментов и сделал прототипы в смежных направлениях. Как оказалось позже, это были необходимые и важные компоненты всей истории. Хотя, признаться, в моменте я о них так не думал. В итоге пазл сложился. В середине декабря я смог написать свой вижен — документ, который описывает общую картину профилирования на ближайшие несколько лет, каким оно может стать. Описание разбивается на шесть слоёв: • runtime — сбор данных
• транспорт — передача и кодирование данных
• обработка данных — вычисления и структуры
• представление данных — не столько в визуальном плане, сколько в том, как мы оперируем данными и представлениями
• связь с кодом — исполняемого с исходным, в том числе через карты кода
• анализ – интерпретация результатов и когнитивная нагрузка И всё это — в масштабе больших и сложных приложений (систем). В масштабе современных зрелых продуктов, а не «to-do list». На каждом слое есть свои большие вызовы и фундаментальные проблемы, которые не решаются на протяжении многих лет. Решение только на одном из слоёв ситуацию в целом не меняет. И вот у меня, наконец, на руках оказались все «ответы». Это не значит, что всё решено и готово. Это значит, что принципиальных инженерных препятствий нет. Но есть препятствия иного плана. И да, всё это ещё предстоит реализовать и обкатать. Главное же, я уже вижу, куда всё это ведёт. И сам не заметил, как сделал качественный переход к новому классу профилирования. Пока ещё не в практическом смысле, впереди много работы, но в ментальном, концептуальном плане. Когда сейчас я рассказываю другим о профилировании, каким оно может быть в некотором будущем, меня не понимают. Но не потому, что я говорю что-то слишком сложное, хотя и такое случается. Проблема в другом. То, о чём я рассказываю, собеседники приземляют на свой текущий опыт — на то, что они уже знают и умеют. Я же, по сути, говорю из «будущего». Ведь они ещё не сделали тот самый качественный переход, который у меня произошёл в процессе моей работы. Поэтому я понял — признаться, не сразу — что нужно найти способ «синхронизироваться». В итоге написал статью, которая задаёт необходимую рамку, чтобы начать говорить о профилировании, каким оно может быть, на одном языке. Статья не даёт ответов. Она подводит к тому, чтобы задуматься, что такое профилирование и как мы об этом думаем. И это не только про поиск узких мест, когда что-то тормозит. Мне видится, что профилирование может, и должно, стать чем-то значительно большим – нашим пониманием как работают сложные системы. Возможно, после этой статьи вы тоже это почувствуете. https://medium.com/@rdvornov/why-profiling-leaves-you-guessing-58f36a97e36f