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 строк?
Если интересно, можете дискуссию на гитхабе поглазеть. Хотя даже не знаю что там может быть интересного. Каких либо апдейтов нет уже полгода.
Post #382
2.28K

- 👍 10
- ❤ 1