docs(measure): четыре замера против sourcekit-lsp и Serena, и правка счёта файлов - #31
Open
RSafargalin wants to merge 1 commit into
Open
RSafargalin wants to merge 1 commit into
RSafargalin wants to merge 1 commit into
Conversation
…счёта файлов Согласие на выборке: пятьдесят имён из карты репозитория, тридцать три сравнимых, все тридцать три совпали ссылка в ссылку. Позицию LSP получал даром — перекос намеренно против нас. Масштаб на swift-syntax: их индекс 551 МБ против наших 43 МБ, и это вторая компиляция того же пакета ради одной индексации; наша сборка — то, что разработчик делает и так, повторная занимает 1.27 с. Ответ у обоих 2518, но их устаканивается 107 секунд через шесть промежуточных чисел, каждое из которых выглядит законченным. Байты на тот же ответ: 873 371 у них, 114 589 у нас построчно, 8 792 с группировкой. Определения инструментов: 6 353 байта против 26 215 у Serena. Замер нашёл и наш дефект: «in 59 file(s)» рядом с усечённым счётом считалось по собранной тысяче, тогда как весь набор трогает 116 файлов. Теперь сказано «of those shown». Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Четыре замера из списка, который мы составили после спайка, плюс дефект, который они нашли у нас.
1. Согласие на выборке — 100 %
Пятьдесят имён взяты из карты репозитория механически (отсортировать и проредить), заданы обоим инструментам на Alamofire
0455bfb. Сравнимых — 33, совпали все 33, ссылка в ссылку. Семнадцать пропущено: за этими именами у sextant больше одного символа, и сравнивать «какой из семиrequest» с одной позицией LSP значило бы подтасовать в свою пользу.Перекос намеренно против нас: sourcekit-lsp спрашивался на позиции определения, которую даёт sextant. Агенту в жизни эту позицию ещё нужно найти.
2. Масштаб: swift-syntax, 758 файлов
swift build --build-tests4 мин 09 сВремя сборки на наш счёт не пишется: разработчик делает её и так, индекс — побочный продукт. 551 МБ им не сэкономить: это вторая компиляция того же пакета ради одной индексации.
Ранний ответ LSP частичен и выглядит полным: 0 → 852 → 2337 → 2362 → 2366 → 2428 → 2518 за 107 секунд. Второй раз за два дня это едва не стало «фактом», поэтому пробник теперь опрашивает, пока число не перестанет меняться.
3. Байты на тот же ответ (2518 ссылок)
--full --limit 3000(все построчно)--jsonПострочно против построчно — 7.6×, потому что у LSP на каждую позицию повторяется абсолютный
file://URI и полный объект диапазона. Против ответа по умолчанию — 99×. Шага «найти позицию» в числах нет: моделировать путь агента цифрой значит его выдумать.4. Цена инструментов до первого ответа
sextant — 13 инструментов, 6 353 байта определений; Serena — 21 инструмент, 26 215 байт. Вчетверо, и это не раздутость: Serena покупает этим символьное редактирование, память и онбординг, которых у нас нет намеренно.
Наш дефект, найденный замером
usages: 1000 of 2518 (internal cap) in 59 file(s)считало файлы по собранной тысяче, тогда как ссылки на символ трогают 116 файлов. Число было верным и читалось как другое. Теперь:in 59 file(s) of those shown.Проверено
0455bfbи swift-syntax60e8eb8, оба собраны с тестами.docs/measurements/со ссылками из таблицы;make ciзелёный.Что из списка осталось
Кросс-язык на настоящем Objective-C репозитории, диагностики после правки, отказоустойчивость (сломанная сборка, макросы,
#if, отсутствующий тулчейн) и сквозной прогон на задачах.🤖 Generated with Claude Code