Де вузьке місце швидкості перегляду веб-сторінок на малиновому пі?


23

На моделі B 512 Мб Pi із розп’янським «хрипким» я спробував Midori, Chromium та Iceweasel. Коли веб-сторінка збільшується, завантаження відбувається повільно, навіть після того, як я розігнав її до 1 ГГц. На телефоні Android з процесором 1 ГГц завантаження веб-сторінок здається набагато швидшим.

Що я хочу знати, де вузьке місце в Пі? Це процесор, чи розмір оперативної пам’яті, або неприскорений сервер X? Чи може браузер безпосередньо використовувати GPU, щоб пришвидшити його?


І пі жене екран 3,5 "480 х 800;) Якщо не можливо , що саме по собі є трохи фактора ...?
Золотоволоска

Монітор VGA використовується для відображення через кабель HDMI-VGA, а конфігурація hdmi_mode=35 1280x1024 60Hz... Але я не бачу жодного покращення після зміни конфігурації наhdmi_mode=9 800x600 60Hz
hello.wjx

Без сумніву. Я вважаю, що вислуханий має правильну відповідь на це питання, але я додав ще один із ідеєю для вас.
золотинки

Відповіді:


15

Це поєднання досить слабкого процесора ARM11 Raspberry Pi та несерцевого X-сервера. Оскільки це не прискорюється графічним процесором, процесор повинен виконувати все рендерінг; на щось подібне до ядра ARM11 в Pi, це створює багато зайвих навантажень на і без того слабкий процесор.

Анекдотично, переглядаючи, htopпоки Midori на Pi завантажує важкий веб-сайт, як Facebook, я бачив, як процес X займає до 25% процесора.

Не дуже справедливо порівнювати чіп свого Android-телефону з мікросхемою (навіть розігнаною) в Pi. Чіп 1 ГГц у вашому телефоні, мабуть, чимось схожий на Cortex-A8 або A9, де використовується архітектурна версія ARMv7; таким чином, вони мають більш високу продуктивність на тактовий цикл, ніж ARM11, в якому використовується ARMv6.


Яку операцію двовимірного малювання може прискорити GPU?
Трисмегістос

@Trismegistos Заповнення регіонів кольорами. Поєднання шарів з прозорим фоном. Згладжування країв шрифту.
Дмитро Григор’єв

14

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

Якщо все, що ви хочете зробити, це запустити браузер, вам також не потрібно запускати середовище робочого столу. Створіть файл, який виглядає приблизно так $HOME/.xinitrc:

#!/bin/sh

midori

Якщо .xinitrc вже існує, перемістіть його тимчасово або прокоментуйте що-небудь інше. Тепер startx(очевидно, ви вже не повинні бути в ньому - робіть це з консолі, не працює GUI). Voila, у тебе просто браузер, немає робочого столу.

Це економить пам’ятку трохи, хоча браузер на сьогоднішній день є слоном у кімнаті, а сам сервер Xorg (який працює) більший за базовий lxde (який зараз не працює). Якщо ви стільки завантажилися в оперативну пам’ять, що використовуєте swap, це вплине на продуктивність. Вищезазначений midori + голий X використовує <100 Мб резиденту відповідно до free:

             total       used       free     shared    buffers     cached
Mem:        448708     242604     206104          0      82660     105156
-/+ buffers/cache:      54788     393920
Swap:       102396          0     102396

448708 - 393920 = 54788/1024 = 53,5 Мб

Це з відкритими 4 вкладками. Знову ж таки, якщо ви подивитеся на це і побачите, що оперативна пам’ять майже повна, це проблема з продуктивністю. Зауважте, що звичайно використовувати трохи swap, навіть якщо баран не повний, тому не хвилюйтеся з цього приводу - цей розміщений матеріал має низький пріоритет.

Щось далі, про що потрібно подумати, - це значення буферів та кешу . Я не включав їх до загальної кількості, і зауважую, що насправді це більше, ніж закріплена пам’ять (приблизно вдвічі більше). Це нормально. Якщо ви заповнюєте пам'ять зафіксованими матеріалами, система просто використовуватиме менше кешу та / або перенесе його на своп. У будь-якому випадку, що буде зниженням продуктивності , оскільки кеш є важливим (це просто не витало або незмінного розмір мудрою, тому не є частина досконалого Мінстату ними пам'яті).

Іншими словами, оптимально ви хочете, щоб ваш прихильний баран був не більше 75% того, що є в пі, і, можливо, менше, ніж це. Якщо ви використовуєте LXDE і починаєте відкривати інші речі, ви можете швидко почати наближатися до цього.


5

Відмова від відповідальності : Далі описано використання експериментальних функцій із сумнівними ефектами. Переконайтесь, що перевірити наявність введених регресій та фактичних результатів.

Ви можете спробувати деякі прапорці Google Chrome / Chromium під, chrome://flagsщоб покращити (очевидну) ефективність перегляду. Є стаття, що пояснює деякі прапори, що стосуються продуктивності . Я спробую тут зібрати декілька:

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

Композиція GPU на всіх сторінках використовує GPU для прокрутки всіх шарів. Таким чином, продуктивність прокрутки повинна покращуватися на сторінках без шарів, прискорених графічним процесором.

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

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

Відключити GPU VSync оновить виведений вміст незалежно від того, завантажив їх монітор. Це покращує частоту кадрів за рахунок непослідовної презентації.

Після ввімкнення / відключення будь-яких комутаторів вам доведеться перезапустити Chrome / Chromium, щоб застосувати налаштування. Кнопка внизу сторінки прапорів може зробити це для вас.

Якщо йти далі, то комутатори командного рядка можна використовувати для оптимізації Chrome / Chromium. Перейдіть до списку перемикачів командного рядка хрому для повного списку.

--default-tile-widthі --default-tile-heightможе бути встановлений так, щоб він відповідав частці розміру екрана, щоб пришвидшити початкове відображення кожної сторінки.


Я спробував прапори Override software rendering list, GPU compositing on all pagesі Threaded compositingна Пі, але не здається , ніяких явних поліпшень. Я також спробував ці прапори на ПК, теж не було поліпшень.
hello.wjx

Переконайтеся, що перезавантажте Chrome після редагування прапорів. Щоб перевірити , Override software rendering listвідкритий в WebGL демо. Для перевірки Threaded compositingспробуйте прокрутити, поки велика сторінка все ще завантажується.
Бенгт

З того, що я читаю тут: chromium.org/developers/design-documents/…, використовуючи "Різьбове композитування", не допоможе на пі - воно має лише одне ядро ​​- і може зробити його гіршим , залежно від того, наскільки значущим "Операція [ копія ] над копією поточного стану візуалізації" є.
золотинки

Ефективність завантаження сторінки знизиться, так. Але Javascript не буде блокуватись і не чекатиме відображення, і сторінка залишатиметься чутливою. Ви торгуєте якоюсь об'єктивною ефективністю для певного сприйнятого результату.
Бенгт
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.