TGViewer
Сохранёнки программиста Сохранёнки программиста @prog_stuff · 6.53K subscribers
Post #3026 120
Как одну проверку Clippy ускорили в 3133 раза

Казалось бы, проверить скобки в вызовах макросов Rust просто. Но Clippy делал это после раскрытия макросов, когда [], () или {} уже нельзя получить напрямую. Знак восстанавливали по фрагменту исходного кода.

В обстоятельном разборе показана цена решения: для каждого выражения, инструкции и элемента программы проверка поднималась по цепочке раскрытий, дважды запрашивала данные компилятора и блокировала таблицу преобразования идентификаторов в строки. Одна функция забирала 25% времени Clippy.

Исправление заняло менее 200 строк: проверку перенесли на этап до раскрытия макросов, где скобки видны сразу. Материал пригодится авторам статических анализаторов и компиляторных плагинов: профилируйте обход каждого узла дерева и проверяйте ускорение замерами.
More from @prog_stuff
  1. Sep 22, 2026Как SQLite обеспечивает атомарный коммит Транзакция выглядит так, будто записалась целиком…
  2. Sep 21, 2026Как выбрать равновероятную выборку из потока неизвестной длины Интерактивный разбор объясн…
  3. Sep 21, 2026Как LMAX вынесла торговую логику в один поток Разбор архитектуры LMAX показывает, почему м…
  4. Sep 20, 2026Как процессор предсказывает ветвления Псевдотранскрипт доклада объясняет тему с нуля. Конв…
  5. Sep 20, 2026Почему одни движки регулярных выражений зависают, а другие нет Обстоятельная статья Расса…
  6. Sep 19, 2026Как проверять изменения без риска для всего трафика Компактный разбор о снижении риска при…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →