fa
Feedback

فریب کلاهبرداران را نخورید! تل‌متریو این کانال‌ها را شناسایی و برچسب‌گذاری می‌کند 👉 برای مشاهده برچسب، اشتراک تهیه کنید

Инструменты программиста

Инструменты программиста

رفتن به کانال در Telegram

Полезные инструменты для программистов — бесплатные и платные Разместить рекламу: @tproger_sales_bot Правила общения: https://tprg.ru/rules Другие каналы: @tproger_channels Регистрация в перечне РКН: https://tprg.ru/mX0S

نمایش بیشتر

📈 تحلیل کانال تلگرام Инструменты программиста

کانال Инструменты программиста (@prog_tools) در بخش زبانی روسی بازیگری فعال است. در حال حاضر جامعه شامل 12 902 مشترک است و جایگاه 9 810 را در دسته فناوری و برنامه‌ها و رتبه 50 174 را در منطقه روسيا دارد.

📊 شاخص‌های مخاطب و پویایی

از زمان ایجاد در невідомо، پروژه رشد سریعی داشته و 12 902 مشترک جذب کرده است.

بر اساس آخرین داده‌ها در تاریخ 26 اکتبر, 2026، کانال فعالیت پایداری دارد. در ۳۰ روز گذشته تغییر اعضا برابر -29 و در ۲۴ ساعت گذشته برابر -6 بوده و همچنان دسترسی گسترده‌ای حفظ شده است.

  • وضعیت تأیید: تأیید نشده
  • نرخ تعامل (ER): میانگین تعامل مخاطب 20.51% است و در ۲۴ ساعت نخست پس از انتشار، محتوا معمولاً 4.90% واکنش نسبت به کل مشترکان کسب می‌کند.
  • دسترسی پست‌ها: هر پست به طور میانگین 2 646 بازدید دریافت می‌کند. در اولین روز معمولاً 632 بازدید جمع‌آوری می‌شود.
  • واکنش‌ها و تعامل: مخاطبان به‌طور فعال حمایت می‌کنند؛ میانگین واکنش به هر پست 1 است.
  • علایق موضوعی: محتوا بر موضوعات کلیدی مانند github, git, docker, install, api تمرکز دارد.

📝 توضیح و سیاست محتوایی

نویسنده این فضا را محل بیان دیدگاه‌های شخصی توصیف می‌کند:
“Полезные инструменты для программистов — бесплатные и платные Разместить рекламу: @tproger_sales_bot Правила общения: https://tprg.ru/rules Другие каналы: @tproger_channels Регистрация в перечне РКН: https://tprg.ru/mX0S”

به لطف به‌روزرسانی‌های پرتکرار (آخرین داده در تاریخ 27 اکتبر, 2026)، کانال همواره به‌روز و دارای دسترسی بالاست. تحلیل‌ها نشان می‌دهد مخاطبان به‌طور فعال با محتوا تعامل دارند و آن را به نقطه اثرگذاری مهم در دسته فناوری و برنامه‌ها تبدیل کرده‌اند.

12 902
مشترکین
-624 ساعت
-217 روز
-2930 روز

در حال بارگذاری داده‌ها

جذب مشترکین
اکتبر '26
اکتبر '26
+79
در 12 کانال‌ها
سپتامبر '26
+84
در 8 کانال‌ها
Get PRO
اوت '26
+57
در 4 کانال‌ها
Get PRO
ژوئیه '26
+34
در 4 کانال‌ها
Get PRO
ژوئن '26
+58
در 3 کانال‌ها
Get PRO
مه '26
+74
در 1 کانال‌ها
Get PRO
آوریل '26
+48
در 3 کانال‌ها
Get PRO
مارس '26
+38
در 6 کانال‌ها
Get PRO
فوریه '26
+46
در 4 کانال‌ها
Get PRO
ژانویه '26
+75
در 2 کانال‌ها
Get PRO
دسامبر '25
+82
در 4 کانال‌ها
Get PRO
نوامبر '25
+74
در 7 کانال‌ها
Get PRO
اکتبر '25
+57
در 3 کانال‌ها
Get PRO
سپتامبر '25
+123
در 2 کانال‌ها
Get PRO
اوت '25
+78
در 2 کانال‌ها
Get PRO
ژوئیه '25
+108
در 2 کانال‌ها
Get PRO
ژوئن '25
+141
در 3 کانال‌ها
Get PRO
مه '25
+121
در 5 کانال‌ها
Get PRO
آوریل '25
+103
در 1 کانال‌ها
Get PRO
مارس '25
+149
در 7 کانال‌ها
Get PRO
فوریه '25
+96
در 4 کانال‌ها
Get PRO
ژانویه '25
+88
در 4 کانال‌ها
Get PRO
دسامبر '24
+95
در 5 کانال‌ها
Get PRO
نوامبر '24
+55
در 4 کانال‌ها
Get PRO
اکتبر '24
+72
در 6 کانال‌ها
Get PRO
سپتامبر '24
+112
در 6 کانال‌ها
Get PRO
اوت '24
+83
در 6 کانال‌ها
Get PRO
ژوئیه '24
+82
در 5 کانال‌ها
Get PRO
ژوئن '24
+43
در 2 کانال‌ها
Get PRO
مه '24
+114
در 2 کانال‌ها
Get PRO
آوریل '24
+126
در 6 کانال‌ها
Get PRO
مارس '24
+113
در 1 کانال‌ها
Get PRO
فوریه '24
+119
در 3 کانال‌ها
Get PRO
ژانویه '24
+100
در 5 کانال‌ها
Get PRO
دسامبر '23
+89
در 3 کانال‌ها
Get PRO
نوامبر '23
+3 608
در 35 کانال‌ها
Get PRO
اکتبر '23
+99
در 2 کانال‌ها
Get PRO
سپتامبر '23
+112
در 0 کانال‌ها
Get PRO
اوت '23
+153
در 0 کانال‌ها
Get PRO
ژوئیه '23
+142
در 0 کانال‌ها
Get PRO
ژوئن '23
+290
در 0 کانال‌ها
Get PRO
مه '23
+161
در 0 کانال‌ها
Get PRO
آوریل '23
+237
در 0 کانال‌ها
Get PRO
مارس '23
+248
در 0 کانال‌ها
Get PRO
فوریه '23
+348
در 0 کانال‌ها
Get PRO
ژانویه '23
+509
در 0 کانال‌ها
Get PRO
دسامبر '22
+219
در 0 کانال‌ها
Get PRO
نوامبر '22
+215
در 0 کانال‌ها
Get PRO
اکتبر '22
+478
در 0 کانال‌ها
Get PRO
سپتامبر '22
+287
در 0 کانال‌ها
Get PRO
اوت '22
+754
در 0 کانال‌ها
Get PRO
ژوئیه '22
+598
در 0 کانال‌ها
Get PRO
ژوئن '22
+1 143
در 0 کانال‌ها
Get PRO
مه '22
+692
در 0 کانال‌ها
Get PRO
آوریل '22
+846
در 0 کانال‌ها
Get PRO
مارس '22
+4 815
در 0 کانال‌ها
Get PRO
فوریه '22
+166
در 0 کانال‌ها
Get PRO
ژانویه '22
+2 400
در 0 کانال‌ها
Get PRO
دسامبر '21
+2 492
در 0 کانال‌ها
Get PRO
نوامبر '21
+2 933
در 0 کانال‌ها
تاریخ
رشد مشترکین
اشارات
کانال‌ها
27 اکتبر0
26 اکتبر0
25 اکتبر+1
24 اکتبر+3
23 اکتبر+1
22 اکتبر0
21 اکتبر+3
20 اکتبر+5
19 اکتبر+1
18 اکتبر+2
17 اکتبر0
16 اکتبر+1
15 اکتبر+3
14 اکتبر+2
13 اکتبر+3
12 اکتبر+17
11 اکتبر+6
10 اکتبر+8
09 اکتبر+12
08 اکتبر+2
07 اکتبر+1
06 اکتبر0
05 اکتبر+1
04 اکتبر0
03 اکتبر+1
02 اکتبر0
01 اکتبر+6
پست‌های کانال
gping: сравнить задержку до двух хостов на одном графике Чтобы сопоставить ping до двух адресов, передайте оба хоста одной команде gping:
gping google.com facebook.com
У каждого адреса появится своя линия. На графике видно, когда задержка выросла и совпали ли всплески у разных хостов. Флаг -b задаёт, сколько секунд истории помещается на экране. По умолчанию это 30 секунд. Адреса в примере можно заменить своими. Обычный режим измеряет ping, поэтому по нему нельзя судить о времени ответа HTTP или скорости скачивания. Утилита также умеет измерять длительность команд через --cmd, но это отдельный режим. В ролике показана демонстрация из репозитория, её числа не описывают вашу сеть.

2
actionlint: найти ошибку в workflow до запуска GitHub Actions В синтаксически корректном YAML может быть неверное имя парамет
actionlint: найти ошибку в workflow до запуска GitHub Actions В синтаксически корректном YAML может быть неверное имя параметра action или обращение к отсутствующему полю матрицы. actionlint находит такие ошибки статическим анализом. В примере проекта он замечает неизвестный input node_version и обращение к matrix.platform, которого нет в матрице. После установки запустите в репозитории: actionlint Утилита сама найдёт workflow и выведет диагностику с файлом, строкой и проблемным выражением. Для проверки shell- и Python-фрагментов есть интеграции с ShellCheck и pyflakes, если они доступны в окружении. Успешная проверка не гарантирует, что workflow выполнится: доступность сервисов и результат реального запуска она не проверяет.
553
3
Голое железо и root-доступ, ВМ со снапшотами по расписанию, Kubernetes с GitOps в проде или всё сразу. В фановом тесте от ком
Голое железо и root-доступ, ВМ со снапшотами по расписанию, Kubernetes с GitOps в проде или всё сразу. В фановом тесте от команды Deckhouse из таких ответов складывается один из 10 типов инфраструктуры. Укротитель давно научился жить с ВМ и Kubernetes рядом, но устал от двух центров управления. Соковыжималка запускает базы и ML прямо на железе, чтобы гипервизор не съедал производительность. Антиквар не трогает систему, которая работает с нулевых. А Повелителю облаков уютно до первого кругленького счёта. Грузчик и Коллекционер выпадают реже всех. Если достался один из них, ссылкой на результат точно стоит поделиться с командой. → Пройти тест и узнать свой тип
711
4
typos: проверить опечатки и оставить намеренные имена Фамилия Teh похожа на опечатку, но исправлять её на the было бы ошибкой. У typos для таких случаев есть словарь исключений в _typos.toml: [default.extend-words] teh = "teh" Сам инструмент сверяет слова в исходниках со списком известных опечаток. Поэтому незнакомое слово само по себе ещё не считается ошибкой. После установки пакета typos-cli запустите typos --diff в репозитории, чтобы увидеть предлагаемые изменения без записи файлов. Для применения есть отдельный флаг --write-changes. Если вариантов исправления несколько, typos сообщает о проблеме и оставляет выбор вам. Это удобная дополнительная проверка перед PR, но она не обнаружит все ошибки и не заменит вычитку русскоязычного текста.
773
5
lychee: проверить ссылки в README перед ревью Правка документации может выглядеть безупречно, пока кто-нибудь не откроет ссылку на удалённую страницу. lychee извлекает ссылки из Markdown и HTML и проверяет их доступность. Если утилита установлена, запустите в каталоге с вашим README: lychee --no-progress README.md Флаг --no-progress убирает прогресс-бар и удобен для журналов CI. Код выхода 2 означает, что хотя бы одна не исключённая ссылка не прошла проверку. Такой результат стоит разобрать: ограничения запросов, авторизация и тайм-ауты могут мешать автоматическому клиенту, даже когда страница существует. Проверка внешних адресов обращается к сайтам по сети. Режим --offline оставляет только локальные файлы. И отдельно проверьте смысл ссылок: доступная страница могла давно сменить содержание.
810
6
bottom: графики нагрузки и процессы в одном терминале Сборка тормозит, память растёт, а по одному списку процессов трудно увидеть, как менялась нагрузка. bottom собирает рядом графики CPU, RAM, swap и сетевого ввода-вывода, а также таблицу процессов. После установки программа запускается как btm. В таблице можно искать и сортировать процессы, есть древовидное представление. Нажмите ? внутри интерфейса, чтобы открыть справку по управлению. Так можно наблюдать систему, пока вы повторяете медленную операцию, и сопоставлять графики со списком процессов. Это отправная точка диагностики: монитор показывает нагрузку, но сам не назовёт строку кода, из-за которой растёт память. Перед установкой сверяйтесь со списком ОС и архитектур в README. Доступность отдельных показателей зависит от платформы и оборудования.
832
7
sd: сначала посмотреть замену, потом записать файл У sd важная особенность: если передать имя файла, замена по умолчанию записывается прямо в него. Для предварительного просмотра есть -p. Допустим, в вашем config.txt нужно заменить локальный адрес. Пример с условным адресом назначения: sd -p -F 'http://localhost:3000' 'https://api.example.com' config.txt Флаг -F включает буквальный поиск. Без него поисковая строка считается регулярным выражением. Это важно для адресов с точками и другими специальными символами. С -p вы увидите преобразованный текст в терминале, исходный файл останется прежним. Если результат подходит, повторите команду без -p и проверьте diff. sd заменяет текстовые совпадения, включая строки и комментарии. Для правки кода, где нужно учитывать структуру выражений, такого поиска может быть недостаточно.
807
8
doggo: какие MX-записи видит выбранный DNS-сервер После смены DNS-записей полезно явно выбрать сервер, к которому уходит запрос. В doggo домен, тип записи и адрес резолвера помещаются в одну команду: doggo MX github.com @9.9.9.9 Это пример из README: запрос MX-записей для github.com через 9.9.9.9. Подставьте свой домен, чтобы посмотреть его ответ. Утилита выводит записи в таблице, а флаг --json пригодится, если результат нужно обработать скриптом. Для такого запроса нужны установленный doggo и доступ к выбранному серверу. Один ответ показывает состояние у этого резолвера в момент проверки. Если проверяете распространение изменения, сопоставьте ответы нескольких серверов: успешный запрос к одному ещё не означает, что новые записи видны всем.
825
9
hyperfine: сравнить команды с прогревом и повторами Один удачный запуск ещё мало говорит о скорости команды: на время влияют кеши и соседние процессы. hyperfine повторяет измерения и показывает их разброс, а результаты можно сохранить в JSON. Короткий учебный пример для hyperfine 2.0 и Unix, где доступна команда sleep: hyperfine --warmup 3 --runs 10 --export-json timings.json 'sleep 0.1' 'sleep 0.2' Для каждой команды сначала пройдут три прогревочных запуска, затем десять измеряемых. Флаг --export-json запишет результаты в timings.json. В версии 2.0 для конвейеров и перенаправлений отдельно нужен -S. В рабочем замере замените обе sleep на варианты, выполняющие одинаковую задачу с одними входными данными. Прогрев нужен для сценария с тёплым кешем. Полученные числа описывают вашу машину и эти условия, поэтому переносить коэффициент ускорения на любой проект нельзя.
859
10
caffeinate не даёт macOS уснуть до завершения команды Запустили долгую сборку и отошли от ноутбука? В macOS есть встроенная у
caffeinate не даёт macOS уснуть до завершения команды Запустили долгую сборку и отошли от ноутбука? В macOS есть встроенная утилита caffeinate, которая удерживает систему от автоматического сна из-за бездействия. Передайте ей нужную команду: caffeinate ./build.sh Защита действует, пока команда работает. После завершения обычный режим сна вернётся. Если процесс уже запущен, укажите его PID, например: caffeinate -w 12345 А вариант caffeinate -id ./build.sh дополнительно не даст погаснуть дисплею. Без аргументов утилита работает до остановки через Ctrl+C. В руководстве Адама Джонсона есть важное ограничение: закрытие крышки всё ещё может усыпить ноутбук. Блокировка экрана при этом не мешает задаче продолжать работу. #инструменты #macos #терминал
937
11
Azure Developer CLI ограничивает параллелизм по этапам развёртывания В проекте с несколькими сервисами одновременная сборка и
Azure Developer CLI ограничивает параллелизм по этапам развёртывания В проекте с несколькими сервисами одновременная сборка и публикация могут упираться в ресурсы машины или ограничения облака. В сентябрьских обновлениях Azure Developer CLI добавили отдельные ограничения параллелизма для этапов package, provision, publish и deploy. Теперь число одновременно выполняемых операций можно настраивать под каждый этап. Пригодится, например, когда сборку нескольких сервисов можно распараллелить, а создание ресурсов или публикацию нужно выполнять с меньшей нагрузкой. В azure.yaml также появились слои инфраструктуры и сервисов для организации сложных проектов. А azd init --template предупреждает, если репозиторий шаблона архивирован. Это возможности инструмента для развёртывания в Azure. В обзоре разобраны версии 1.33.0–1.34.2. #инструменты #azure #cli
901
12
Zed сравнивает каталоги в двух соседних панелях Нужно сопоставить две копии проекта или результат генерации файлов? В Zed 1.2
Zed сравнивает каталоги в двух соседних панелях Нужно сопоставить две копии проекта или результат генерации файлов? В Zed 1.24.2 появился просмотр различий каталогов рядом друг с другом через zed --diff. Например, для двух локальных папок: zed --diff ./before ./after Так удобнее просматривать изменения сразу в нескольких файлах: исходная и новая версии открываются в соседних панелях. Ещё в релизе добавили создание Git-тегов из истории коммитов и Git Graph. Команда git: create tag at head ставит локальный тег на текущий коммит. Автоматической отправки тега на сервер нет. А поиск файлов теперь может подставлять текст, выделенный в редакторе или терминале. Мелочь, которая убирает копирование имени файла из сообщения об ошибке в строку поиска. #инструменты #zed #git
991
13
uv помогает подготовить окружение для тестов самого Django Нашли ошибку во фреймворке и хотите проверить исправление? У Djang
uv помогает подготовить окружение для тестов самого Django Нашли ошибку во фреймворке и хотите проверить исправление? У Django есть собственный набор тестов. Адам Джонсон показывает, как подготовить для него окружение через uv. В корне клонированного репозитория Django: uv venv uv pip install -e . -r tests/requirements/py3.txt Первая команда создаёт .venv, вторая устанавливает Django в редактируемом режиме и зависимости тестов. Изменения в исходниках фреймворка будут доступны без повторной установки пакета. Затем активируйте окружение, перейдите в tests и запустите runtests.py. Это подготовка к работе над самим Django; тесты вашего приложения запускаются отдельно. В статье также разобрана проблема сборки pylibmc. Его можно исключить из установки, но тогда зависящие от него тесты будут пропущены. #инструменты #python #django
1 014
14
GitHub Actions фиксирует зависимости workflow в lock-файле Ссылка на action через тег удобна для чтения, но тег может перемес
GitHub Actions фиксирует зависимости workflow в lock-файле Ссылка на action через тег удобна для чтения, но тег может переместиться. Тогда следующий запуск выполнит другой код, хотя файл workflow в вашем репозитории не менялся. В GitHub Actions появился механизм lock-файлов, пока в public preview. Расширение gh actions-lock создаёт .github/workflows/actions.lock с конкретными коммитами зависимостей. Фиксируются actions, их транзитивные зависимости и зависимости переиспользуемых workflow. Подключать механизм можно постепенно, для отдельных workflow. При обновлении action через Dependabot соответствующая запись в lock-файле обновляется в том же PR. Так изменения зависимостей становятся видны на ревью. Но сначала проверьте сам код: фиксация коммита обеспечивает постоянство версии, а оценивать её безопасность всё равно нужно отдельно. #инструменты #github #ci
1 084
15
DBeaver 26.2.3 запускает SQL-файлы без открытия в редакторе Когда готовый SQL-скрипт нужно просто выполнить, отдельная вкладк
DBeaver 26.2.3 запускает SQL-файлы без открытия в редакторе Когда готовый SQL-скрипт нужно просто выполнить, отдельная вкладка бывает лишней. В DBeaver 26.2.3 добавили запуск файлов со скриптами без открытия в SQL-редакторе. После успешного выполнения DDL — например, изменения структуры таблицы — появилось уведомление, предлагающее обновить затронутые метаданные. Это помогает привести дерево объектов в соответствие с изменениями в базе. В той же версии исправили массовый импорт в PostgreSQL: раньше могли некорректно обрабатываться обратные слеши и пользовательские символы экранирования CSV. Пригодится тем, кто регулярно запускает подготовленные SQL-файлы и загружает данные через настольный клиент. Перед выполнением всё равно проверьте подключение и содержимое скрипта: новый способ запуска не добавляет автоматического отката. #инструменты #sql
1 089
16
Firefox DevTools MCP: полный скриншот и завершение сессии В Firefox DevTools MCP 0.10.3 добавили несколько возможностей для а
Firefox DevTools MCP: полный скриншот и завершение сессии В Firefox DevTools MCP 0.10.3 добавили несколько возможностей для автоматизированной проверки страниц. По объявлению Mozilla, параметр fullPage у screenshot_page позволяет снять весь прокручиваемый документ вместо видимой области. При разрешении загрузок через set_download_behavior можно указать каталог в downloadFolder. Отдельно появился close_firefox_session. Если сервер подключён к уже открытому Firefox, инструмент разрывает соединение. Если сервер сам запустил браузер, он его закрывает. Это различие важно для сценариев, работающих рядом с пользовательскими вкладками. Сессии подключения к существующему Firefox теперь отключаются после 30 минут без вызовов инструментов. А restart_firefox перенесли во внутренний пакет Mozilla для контролируемых сред. Пригодится для проверок длинных страниц, загрузок файлов и корректного завершения браузерных сценариев. #firefox #mcp
1 101
17
Chrome DevTools: измерять переходы внутри SPA В одностраничном приложении адрес и содержимое меняются без полной загрузки док
Chrome DevTools: измерять переходы внутри SPA В одностраничном приложении адрес и содержимое меняются без полной загрузки документа. Поэтому одной записи первоначального открытия страницы недостаточно, чтобы оценить следующие переходы. В обзоре Chrome DevTools описана поддержка soft navigation в разделе Insights панели Performance. Она дополняет отображение таких переходов в Live Metrics и записи выполнения. Для проверки откройте Performance, начните запись и выполните нужный переход в приложении. Если DevTools распознал его как soft navigation, можно рассмотреть соответствующий участок и связанные подсказки по производительности. В том же обновлении поиск по Ctrl+F научился находить записи пользовательских дорожек, добавленных через Extensibility API, включая их свойства и текст подсказок. Сценарии стоит записывать отдельно: открытие приложения, переход между экранами, повторное посещение уже загруженного раздела. #devtools #производительность
1 095
18
IntelliJ IDEA: действия редактора через две точки Нужная команда IDE часто существует, но её сочетание клавиш вспоминается до
IntelliJ IDEA: действия редактора через две точки Нужная команда IDE часто существует, но её сочетание клавиш вспоминается дольше, чем занимает само действие. В IntelliJ IDEA можно начать с .. прямо в редакторе. Как показано в заметке JetBrains, command completion предлагает действия с учётом кода и положения курсора: навигацию, рефакторинг, генерацию и исправления. В 2026.3 EAP этот механизм расширили. Появился более прямой доступ к logpoints, подсветка элемента, к которому применится действие, и общий интерфейс с postfix completion и живыми шаблонами. Поддержку также развивают для файлов настроек и декомпилированного кода. Базовый вызов через две точки можно попробовать в Java-, Kotlin- или Scala-файле в IDEA 2026.2. Новые возможности из статьи относятся к предварительной 2026.3 EAP, поэтому набор действий зависит от версии и контекста. #intellij #ide
1 113
19
Docker Compose: корректный YAML ещё не гарантирует поведение Параметр может существовать в спецификации Compose и проходить п
Docker Compose: корректный YAML ещё не гарантирует поведение Параметр может существовать в спецификации Compose и проходить проверку схемы, но не поддерживаться при обычном запуске через docker compose up. В Compose 5.6.0 добавили предупреждения о неподдерживаемых атрибутах файла. Это помогает заметить ситуацию, когда настройка записана, а ожидаемого эффекта нет. Например, параметры обновления сервисов для Swarm не превращают локальный Compose в оркестратор с таким же механизмом развёртывания. При переносе конфигурации между средами стоит проверять поддержку конкретных полей, а затем фактическое поведение контейнеров. В том же выпуске появилась частичная поддержка jobs: пока доступны только задания с ручным запуском. Задания по расписанию ещё ждут соответствующей поддержки Docker Engine. Полезная проверка после обновления: перечитать предупреждения запуска и сопоставить их с настройками, на которые рассчитывает ваш проект. #docker #конфигурация
1 142
20
Tachyon: найти медленный участок Python-программы В Python 3.15 появился статистический профилировщик Tachyon в модуле profil
Tachyon: найти медленный участок Python-программы В Python 3.15 появился статистический профилировщик Tachyon в модуле profiling.sampling. Он периодически снимает состояние стеков и помогает увидеть, где программа проводит время. В разборе Astral его запускают через uv и открывают диаграмму в браузере. Для своего файла команда выглядит так: uv run --python=3.15 -m profiling.sampling run --flamegraph --browser app.py На диаграмме ищите широкие участки стека и проверяйте, какая работа за ними стоит. В примере статьи заметную долю выборок занимало объединение списков через sum(). Замена этого участка сократила время конкретного запуска примерно вдвое. Доля выборок не равна числу вызовов функции. После изменения кода отдельно измерьте полное время программы на той же нагрузке. В примере используется Python 3.15; запуск через uv требует доступного интерпретатора и зависимостей проекта. #python #профилирование
1 124