Статьи

Вплив полігонів і доповнень браузера на продуктивність - Вадим Стеркиной

  1. Відстеження завантаження плагінів в Opera, Chrome і Firefox
  2. Споживання пам'яті доповненнями Opera, Chrome і Firefox
  3. Вимірювання часу запуску браузера і навігації до веб-сторінці
  4. Internet Explorer
  5. Радник із продуктивності додаткових компонентів в IE9
  6. Opera, Firefox і Chrome
  7. Методика вимірювання
  8. Експеримент з Google Chrome
  9. висновки

З точки зору впливу полігонів і доповнень на продуктивність операційної системи і браузера можна виділити:   споживання оперативної пам'яті   уповільнення запуску браузера, а також відкриття вкладок і переходу до сторінок   При цьому не варто стригти доповнення та плагіни під одну гребінку З точки зору впливу полігонів і доповнень на продуктивність операційної системи і браузера можна виділити:

  • споживання оперативної пам'яті
  • уповільнення запуску браузера, а також відкриття вкладок і переходу до сторінок

При цьому не варто стригти доповнення та плагіни під одну гребінку.

Доповнення, як правило, завантажуються в браузер відразу при його запуску. Наявність підключеного плагіна ще не означає, що він активний з першої секунди роботи браузера. Навпаки, завантаження плагінів відбувається в міру необхідності.

Це легко перевірити за допомогою Process Explorer, вбудованих засобів браузерів і Windows Performance Toolkit. Перша частина розповіді почалася з того, що я виявив безліч плагінів в Opera - давайте подивимося, як вони впливають на продуктивність.

Відстеження завантаження плагінів в Opera, Chrome і Firefox

Process Explorer дозволяє подивитися динамічні бібліотеки, використовувані процесом. Зліва на малюнку показані бібліотеки, завантажені в браузер Opera з порожньою стартовою сторінкою. Як бачите, тут немає жодного плагіна NPAPI (з ім'ям, що починається з NP). Справа показана та ж сесія браузера після відкриття сайту, який використовує технологію Flash (вона зустрічається повсюдно), а також PDF-файлу в іншій вкладці.

Браузер моментально завантажив підключення плагіни, щоб забезпечити відтворення Flash і відобразити документ в форматі PDF. При цьому робочий набір пам'яті (Working Set) виріс з 113 Мб при єдиною порожній вкладці до 133 Мб при двох відкритих вкладках з сайтом і PDF-файлом. Після закриття цих вкладок плагіни залишаються завантаженими в браузер, а споживання пам'яті падає незначно.

Те ж саме буде відбуватися, скажімо, при програванні роликів QuickTime - за допомогою плагіна npqtplugin.dll браузер активує всі необхідні компоненти в кількості майже 40 штук! І майже всі вони залишаться завантаженими в браузер навіть після закриття вкладки, а споживання пам'яті виросте ще мегабайт на 30.

У Chrome і Firefox плагіни теж завантажуються в міру необхідності, в чому ви можете переконатися самостійно. У Firefox плагіни містяться в окремих контейнерах, і для кожного можна подивитися, які бібліотеки завантажені.

Chrome запитує дозволу на запуск плагіна, як мінімум в перший раз на сайті (в Opera ця можливість теж є, але відключена за замовчуванням).

Оскільки Chrome запускає кілька своїх процесів, простіше дивитися завантажені плагіни вбудованими в браузер засобами на сторінці about: memory.

Як бачите, браузери Opera, Chrome і Firefox завантажують їх тільки при необхідності.

Можна з упевненістю сказати, що відключення непотрібних плагінів NPAPI не дає виграшу в продуктивності.

З тієї ж причини я не бачу особливого сенсу налаштовувати браузер для запитів про активацію плагіна при кожній зустрічі з мультимедійним вмістом - це тільки сповільнює веб-серфінг. Однак, будучи одного разу завантаженими, плагіни продовжують використовувати оперативну пам'ять протягом всієї сесії браузера, тобто до його закриття.

Споживання пам'яті доповненнями Opera, Chrome і Firefox

Ми з'ясували, що плагіни починають споживають оперативну пам'ять тільки після того, як вони вперше знадобляться браузеру протягом сесії.

Додатки завантажуються при запуску браузера, відповідно пам'ять вони споживають з першої секунди його роботи.

У мене в браузері Google не були встановлені доповнення, але свій бойовий набір підказав мій колега Morpheus , У якого Chrome є основним вікном в Інтернет.

У Chrome в меню «Інструменти» є дуже зручний диспетчер задач, який показує відомості про споживання оперативної пам'яті і часу процесора браузером і доповненнями.

У Chrome в меню «Інструменти» є дуже зручний диспетчер задач, який показує відомості про споживання оперативної пам'яті і часу процесора браузером і доповненнями

Як бачите, 13 доповнень займають 102 Мб оперативної пам'яті, тобто навіть більше ніж браузер, відкритий з однієї вкладкою. У міру відкриття сайтів в інших вкладках зростає споживання пам'яті та у доповнень, хоча набагато менше, ніж у процесів браузера.

У Firefox і Opera таких інструментів немає, але можна задіяти Process Explorer , Порівнявши споживання пам'яті браузером з доповненнями і без них. На прикладі відстеження плагінів NPAPI ви вже бачили , Як подивитися робочий набір пам'яті за допомогою Process Explorer.

Firefox можна запустити без доповнень командою firefox -safe-mode. При цьому плагіни залишаються включеними, що дає можливість оцінити споживання пам'яті тільки доповненнями. В Opera кожне доповнення, напевно, доведеться відключати вручну.

Вимірювання часу запуску браузера і навігації до веб-сторінці

Інтуїтивно зрозуміло, що браузер без доповнень працює швидше, ніж з ними. Але як це виміряти? Я опишу два можливих шляхи.

Internet Explorer

В Internet Explorer плагіни і доповнення називаються надбудовами (add-ons), а управління ними об'єднано.

Продуктивність Internet Explorer зручно відстежувати за допомогою Windows Performance Toolkit (WPT) Продуктивність Internet Explorer зручно відстежувати за допомогою Windows Performance Toolkit (WPT). На відміну від інших браузерів, IE реєструє події створення вкладок і навігації до сторінок, і це можна записати за допомогою WPT. Я не буду дублювати розповідь про завантаження та інсталяцію WPT , Тому відразу перейду до справи.

Я вирішив порівняти час запуску браузера з наступним завантаженням головної сторінки свого блога при стандартному наборі моїх надбудов і без надбудов зовсім. Щоб автоматизувати процес, я написав простенький командний файл, де кожна дія супроводжується коментарем. Запускати файл потрібно від імені адміністратора, оскільки це необхідно для роботи xperf.

@echo off :: Ім'я для файлу сесії і балки :: Змінюйте, щоб не перезаписувати лог set session = mytrace1 :: Перехід в папку, де буде зберігатися лог cd c: \ test :: Запуск xperf для відстеження активності xperf -start% session % -on PerfTrack :: Пауза в 3 секунди http://www.oszone.net/6160 nircmd wait 3000 :: Запуск браузера з одного вкладкою :: з надбудовами start / d "C: \ Program Files \ Internet Explorer" iexplore www .outsidethebox.ms :: Без надбудов :: start / d "C: \ Program Files \ Internet Explorer" iexplore -extoff www.outsidethebox.ms :: Пауза в 10 секунд для завантаження сторінки nircmd wait 10000 :: Зупинка відстеження активності xperf - stop% session% -d% session% .etl :: Пауза в 3 секунди nircmd wait 3000 :: Відкриття ETL-фа йла xperfview% session% .etl exit

Після запуску ETL-файл відкривається автоматично і відображає зареєстровані події.

Колір кожної точки відповідає провайдеру, тобто джерела події, якщо говорити спрощено. При наведенні курсора на кожну точку спливає докладна інформація про неї. Перша зелена точка - це початок запуску браузера, а дві жовті - це початок і кінець навігації на сторінку.

Можна відкрити калькулятор і обчислити різницю між точками, використовуючи TimeStamp кожної, а можна клацнути лівою кнопкою миші по початковій точці і потягнути курсор до кінцевої точки. Від початку запуску браузера до повного завантаження сторінки пройшло 2,55 секунди, з них 2,17 пішло на навігацію.

Повторюю експеримент, але в цей раз браузер запускається без надбудов.

Повторюю експеримент, але в цей раз браузер запускається без надбудов

Тривалість запуску IE9 скоротилася до 2,08 секунди, а навігація зайняла 1,70 секунди. Звичайно, для більш точних висновків слід зробити кілька контрольних запусків.

Цікавий спосіб вимірювання продуктивності, чи не так? Застосувавши його на кількох сайтах, можна обчислити надбудови, які уповільнюють відкриття вкладок і навігацію по сторінках.

Час завантаження і навігації для надбудов вмів показувати ще IE8, а в IE9 був зроблений ще один крок вперед.

Радник із продуктивності додаткових компонентів в IE9

У IE9 з'явився так званий «Порадник із продуктивності надбудов». Якщо сумарна тривалість запуску надбудов перевищує задане значення (за замовчуванням - це 0,2 секунди), при старті браузера з'являється пропозиція відключити повільні або непотрібні надбудови.

Викликати це вікно з інтерфейсу браузера можна, але є обхідний шлях - реєстр. Граничне значення задається параметром AddonLoadTimeThreshold в розділі

HKEY_CURRENT_USER \ Software \ Microsoft \ Internet Explorer \ MAO Settings

Задавши параметру значення 0 і перезапустивши провідник і браузер, ви побачите жадане вікно.

Opera, Firefox і Chrome

Доповнення уповільнюють запуск всіх браузерів. За даними розробників Firefox , Кожне доповнення в середньому гальмує запуск на 10%, тобто десять доповнень збільшують тривалість запуску браузера в два рази. Mozilla реалізувала автоматичне тестування доповнень, і тепер в галереї має відображатися попередження, якщо додаток гальмує запуск браузера більш ніж на 25%.

На жаль, Windows Performance Toolkit не допоможе виміряти тривалість запуску і навігації до веб-сторінці в Opera, Firefox або Chrome, тому що в них не реєструються потрібні події. Взяти в руки секундомір? Занадто велика похибка. Я вирішив піти іншим шляхом.

Методика вимірювання

Якщо ви захочете повторити мій експеримент, вам знадобляться: Якщо ви захочете повторити мій експеримент, вам знадобляться:

  • програма для запису відео з екрану
  • програвач, що вміє відтворювати відео в покадровому режимі і показувати шкалу часу з десятими / сотими частками секунди

Свої відео я роблю в Camtasia , Що володіє обома можливостями, але підійдуть і більш прості безкоштовні аналоги.

Алгоритм дій такий:

  1. Налаштуйте в якості єдиної домашньої сторінки браузера будь-який сайт.
  2. Увімкніть запис.
  3. Запустіть браузер з надбудовами і без них однакова кількість разів.
  4. Вимкніть запис.

Оскільки відеозапис у мене вже була, залишилося додати пояснення і музику :)

Тепер використовуйте покадровий режим програвання записаного відео, щоб точно визначити моменти запуску браузера і закінчення завантаження веб-сторінки. У Camtasia це робиться елементарно з точністю до однієї сотої секунди.

У Camtasia це робиться елементарно з точністю до однієї сотої секунди

Порівнявши середній час запуску і навігації в браузері з доповненнями і без, ви побачите різницю.

Експеримент з Google Chrome

Використовуючи набір з 13 доповнень, я вирішив перевірити, як вони впливають на швидкість запуску браузера з завантаженням веб-сторінки.

Щоб Google було не нудно, я відкривав в її браузері сайт Microsoft - по 5 разів на звичайному режимі і режимі інкогніто, в якому доповнення за замовчуванням відключені.

Різниця в швидкості завантаження склала 29%. Це немало, але пара зайвих секунд при завантаженні з лишком компенсується зручністю доповнень!

Якщо ви вирішите провести подібний експеримент зі своїм браузером, обов'язково розкажіть в коментарях, що у вас вийшло!

Як бачите, доповнення не тільки використовують системні ресурси (оперативну пам'ять), але і впливають на швидкість запуску браузера.

висновки

Отже, моя розповідь про плагіни і доповнення браузерів закінчений Отже, моя розповідь про плагіни і доповнення браузерів закінчений. Ви дізналися, що підключені плагіни не впливають на продуктивність до тих пір, поки браузер їх не завантажить. Цього не можна сказати про доповнення, які уповільнюють запуск браузера і використовують оперативну пам'ять з перших секунд його роботи. Однак ці недоліки компенсуються економією часу, яка досягається за рахунок більш ефективного веб-серфінгу з доповненнями.

Ви також познайомилися з різними способами вимірювання швидкості роботи і споживання пам'яті браузерами і доповненнями до них. Process Explorer, Windows Performance Toolkit, вбудовані засоби браузерів і трохи кмітливості - ось і все, що потрібно, щоб оцінити вплив надбудов на продуктивність браузерів. Якщо у вас є зауваження або побажання по цим способам, не соромтеся висловити їх в коментарях.

А як у вас справи з доповненнями до браузерів? Скільки їх і як багато оперативної пам'яті їм потрібно? Наскільки швидше запускається ваш браузер без доповнень?

Обговорення завершено.

Але як це виміряти?
Цікавий спосіб вимірювання продуктивності, чи не так?
Взяти в руки секундомір?
А як у вас справи з доповненнями до браузерів?
Скільки їх і як багато оперативної пам'яті їм потрібно?
Наскільки швидше запускається ваш браузер без доповнень?

Новости