Що робить інтернет повільним: дослідження продуктивності JavaScript

2 хв. читання

Компанія CatchJS опублікувала дослідження про те, що може сповільнювати інтернет і які фактори та помилки з цим пов'язані. Дослідники опрацювали мільйон найпопулярніших сторінок в інтернеті та позначили кожну помилку і кожен URL. При цьому враховувались різні показники продуктивності: час рендеру, кількість запитів, перемальовка (repaints), помилки JavaScript, використані бібліотеки тощо.

88

Зазначено, що це, вочевидь, перший набір даних, який пов'язує продуктивність, помилки та використання бібліотеки у вебі. Завантажити увесь датасет можна з Kaggle.

Дослідники виявили, що як протокол для кореневого документа HTTP 2 поширеніший за HTTP 1.1. Водночас HTTP 3 й досі рідкість.

Screenshot-1

Якщо ж йдеться про пов'язані (linked) ресурси, використання HTTP 3 зростає в 100 разів — з 0,08% до 8,6%. Чому так? Річ у тім, що всі сайти посилаються на ті самі URL: сервіси Google-аналітики, facebook тощо.

Screenshot-5

Існує кілька скриптів, на які посилаються більшість сайтів. Однак ці ресурси не зберігатимуться в кеші, адже з версії Chrome 86 кеш розділятиметься для кожного ресурсу окремо, Firefox це теж планує, а Safari так робить вже не перший рік.

Якщо ж говорити про бібліотеки, то найпопулярнішими є не React, Vue чи Angular. У рейтингу CatchJS це jQuery (50,5%), Google Analytics (42,1%) і Google Ads (21,0%).

Screenshot-6

Першість серед бібліотек належить jQuery, випущеній 14 років тому, коли найпопулярнішим браузером був Internet Explorer 6, а головною соцмережею — MySpace.

Основним призначенням JQuery вважалась кросбраузерна сумісність, яка у 2020 році трохи змінилась. Та половина найпопулярніших сторінок й досі завантажує jQuery. Водночас 2,2% сайтів показують помилку, оскільки JQuery не завантажується.

Якщо вірити рейтингу CatchJS, браузери переважно використовують аналітику, рекламу і код для сумісності з іншими браузерами. Водночас 8% сайтів визначають поліфіл setImmediate/clearImmediate для функції, яку не зможе реалізувати жоден браузер.

Також моделювання показало, що разом з jQuery показник продуктивності time-to-interactive сповільнюється на 982 мс.

Screenshot-7

Дослідники зазначають, що їхні методи демонструють саме кореляцію, а не чітку причинно-наслідковість. Але уповільнення на 982 мс і поширеність jQuery на половині сайтів — навіть такий опосередкований зв'язок може насторожувати. Детальніше про це та інші дослідження CatchJS (наприклад, про помилки JavaScript) можна прочитати у цьому блозі.

Помітили помилку? Повідомте автору, для цього достатньо виділити текст з помилкою та натиснути Ctrl+Enter
Codeguida 6.2K
Приєднався: 7 місяців тому
Коментарі (0)

    Ще немає коментарів

Щоб залишити коментар необхідно авторизуватися.

Вхід / Реєстрація