TGViewer
Валя читает ишью Валя читает ишью @valya_reads_issue · 3.01K subscribers
Post #382 2.28K
Diff: The uphill climb of making diff lines performant

Пару лет назад я уже пинал GitHub за то, что основная, казалось бы, фича продукта работает ужасно медленно.

И вот, в очередной раз я сделал пул-реквест на 1400 файлов (+2000/-172 строк). Ну и хотелось бы дифф посмотреть. А знаете (к сожалению, скорей всего знаете) сколько секунд браузер думает когда я просто файлики сворачиваю в сайдбаре на странице пул-реквеста? 3 секунды! Сам браузер при этом просто намертво зависает. Про плейсхолдеры с «load diff» я даже говорить ничего не буду…

Ну да ладно, в гитхабе осознают проблему и вот уже полтора (!) года существует НОВЫЙ ЭКСПЕРИМЕНТАЛЬНЫЙ дифф! Можно включить у себя в профиле в экспериментах, что я примерно год назад и сделал. И в сравнении со старым изменения, конечно, есть. А в апреле в официальном блоге гитхаба вышла даже гордая статья The uphill climb of making diff lines performant. Ну всё, проблема решена! Ведь решена же, да?

Во-первых, фичу выкатывали постепенно, через эксперимент. И первоначальный лимит был в 300 файлов на пул-реквест. Казалось бы, 300 файлов — много! Но только вот стандартный лимит 1000! Т.е. вы там сидели, улучшали и такие «ну давай раскатим на юзеров, но только сделаем ХУЖЕ». Спустя 4 месяца лимит подняли (ну или вернули) до 1000. И ещё через 2 месяца подняли до 3000! Вот уж «new experience is being built to scale», спасибо.

А во-вторых, ну, получилось всё равно плохо… Как минимум в том же VS Code всё работает всё равно быстрее.
Ну и кто бы мог подумать, что если уменьшить количество дом-нод и добавить виртуальный список, то станет полегче? Мне теперь даже показывают контент файла — нужно всего лишь подождать секунду пока прогрузится. Вот уж действительно performant™.

В комментарии придёт кто-то умный и скажет 1400 файлов! Вон из профессии, позорник! Декомпозируй! Но простите, что мне декомпоизировать то? 2000 строк?

Если интересно, можете дискуссию на гитхабе поглазеть. Хотя даже не знаю что там может быть интересного. Каких либо апдейтов нет уже полгода.
  • 👍 10
  • ❤ 1
More from @valya_reads_issue
  1. Aug 26, 2026Поддержка zip архивов в Node.js Внезапно, в Node.js 26.8.0 появился нативная поддержка для…
  2. Jun 12, 2026Diff: You should be able to just render any diff А пока гитхаб не вывозит как с точки зрен…
  3. May 6, 2026Vite выходит из Vitest В Vitest появилась крайне интересная дискуссия — а что если раздели…
  4. Mar 31, 2026Port of React Compiler to Rust Пока что WIP в виде альтернативного плагина для Babel и cra…
  5. Mar 11, 2026Evolving the Node.js Release Schedule Node.js давно загнала себя в странное состояние — чё…
  6. Feb 2, 2026Oxfmt достиг паритета c prettier Пару лет назад автор prettier запускал челлендж — $10 000…
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 →