Pada Model B 512 MB Pi dengan Raspbian "wheezy", saya telah mencoba Midori, Chromium dan Iceweasel. Ketika halaman web bertambah besar, memuatnya lambat, bahkan setelah saya overclock ke 1 GHz. Pada ponsel Android dengan CPU 1 GHz, memuat halaman web tampaknya jauh lebih cepat.
Yang ingin saya ketahui adalah, di mana bottleneck di Pi? Apakah itu CPU, atau ukuran RAM, atau X server yang tidak terkecuali? Mungkinkah browser menggunakan GPU secara langsung untuk mempercepatnya?
performance
web-browsers
hello.wjx
sumber
sumber
hdmi_mode=35 1280x1024 60Hz
... Tapi saya tidak bisa melihat peningkatan setelah mengubah konfigurasi kehdmi_mode=9 800x600 60Hz
Jawaban:
Ini adalah kombinasi dari CPU ARM11 Raspberry Pi yang cukup lemah dan server X yang tidak terkecuali. Karena tidak dipercepat oleh GPU, CPU harus melakukan semua rendering; pada sesuatu seperti inti ARM11 di Pi, ini menempatkan banyak tekanan tambahan pada CPU yang sudah lemah.
Secara anekdot, saat menonton
htop
sementara Midori di Pi memuat situs web berat seperti Facebook, saya telah melihat proses X memakan hingga 25% dari CPU.Tidaklah adil untuk membandingkan chip di ponsel Android Anda dengan chip (bahkan di-overclock) di Pi. Chip 1 GHz di ponsel Anda mungkin mirip dengan Cortex-A8 atau A9, yang menggunakan versi arsitektur ARMv7; dengan demikian, mereka adalah kinerja yang lebih tinggi per siklus clock daripada ARM11, yang menggunakan ARMv6.
sumber
Ini sudah jawaban IMO yang benar, dan apa yang saya sarankan mungkin tidak akan membuat banyak perbedaan, tetapi mungkin berguna untuk mengetahui.
Jika semua yang ingin Anda lakukan adalah menjalankan browser, Anda tidak harus menjalankan lingkungan desktop juga. Buat file yang terlihat seperti ini sebagai
$HOME/.xinitrc
:Jika .xinitrc sudah ada, pindahkan sementara atau beri komentar apa pun. Sekarang,
startx
(jelas, Anda seharusnya tidak berada di dalamnya - lakukan ini dari konsol tanpa GUI berjalan). Voila, Anda hanya punya browser, tanpa desktop.Itu menghemat sedikit memori, meskipun browser adalah gajah di dalam ruangan dan server Xorg sendiri (yang berjalan) lebih besar dari lxde dasar (yang sekarang tidak berjalan). Jika Anda memiliki begitu banyak dimuat ke dalam RAM yang Anda gunakan swap, itu akan mempengaruhi kinerja. Midori + bare X di atas menggunakan penduduk <100 MB sesuai dengan
free
:448708 - 393920 = 54788/1024 = 53,5 MB
Itu dengan 4 tab terbuka. Sekali lagi, jika Anda melihat ini dan melihat RAM Anda hampir penuh, itu masalah kinerja. Perhatikan bahwa normal untuk menggunakan sedikit swap bahkan jika ram tidak penuh, jadi jangan khawatir tentang hal itu - bahwa barang yang ditukar adalah prioritas rendah.
Sesuatu yang lebih jauh untuk dipikirkan, kinerja bijaksana, adalah pentingnya buffer dan cache . Saya tidak memasukkan ini dalam total, dan perhatikan itu sebenarnya lebih dari memori yang dilakukan (sekitar dua kali lebih banyak). Itu normal. Jika Anda mengisi memori dengan hal-hal yang dilakukan, sistem hanya akan menggunakan lebih sedikit cache dan / atau mentransfernya untuk bertukar. Either way, itu akan menjadi penurunan kinerja karena cache itu penting (hanya saja tidak penting atau ukuran tidak dapat diubah, jadi bukan bagian dari stat mem berkomitmen).
Dengan kata lain, secara optimal Anda ingin ram yang berkomitmen tidak lebih dari 75% dari apa yang tersedia pada pi dan mungkin kurang dari itu. Jika Anda menggunakan LXDE dan mulai membuka hal-hal lain, Anda dapat dengan cepat mulai mendekati itu.
sumber
Anda dapat mencoba beberapa bendera Google Chrome / Chromium di bawah
chrome://flags
untuk meningkatkan kinerja penelusuran (jelas). Ada artikel yang menjelaskan beberapa bendera yang relevan dengan kinerja . Saya akan mencoba mengumpulkan beberapa di sini:Memaksa akselerasi GPU dengan mengaktifkan "Overrrite Software Rendering List" akan menggunakan GPU untuk rendering dengan biaya kemungkinan artefak, bahkan jika driver tidak masuk daftar putih. Saya tidak tahu seberapa baik ini bekerja dengan GPU Pi.
Pengomposisian GPU pada semua halaman akan menggunakan GPU untuk menggulir semua layer. Jadi kinerja bergulir harus ditingkatkan pada halaman tanpa lapisan dipercepat GPU.
Segarkan jendela tilewise akan menjadi petunjuk lain. Ini akan membuat ubin dan menampilkan masing-masing begitu siap alih-alih menunggu yang terakhir selesai. Akibatnya rendering akan lebih lama karena overhead yang diperkenalkan, tetapi konten akan muncul lebih cepat.
Rendering di utas terpisah akan melakukan rendering secara tidak sinkron dan membuat antarmuka responsif. Anda dapat menggulir saat halaman masih dirender.
Nonaktifkan GPU VSync akan memperbarui konten yang diberikan terlepas dari apakah monitor telah memuatnya. Ini meningkatkan frame rate dengan biaya presentasi yang tidak konsisten.
Setelah mengaktifkan / menonaktifkan sakelar apa pun, Anda harus memulai ulang Chrome / Chromium agar pengaturan dapat diterapkan. Tombol di bagian bawah halaman bendera dapat melakukannya untuk Anda.
Lebih jauh lagi, saklar baris perintah dapat digunakan untuk mengoptimalkan Chrome / Chromium. Lihat Daftar Sakelar Baris Perintah Chromium untuk daftar lengkap.
--default-tile-width
dan--default-tile-height
dapat diatur agar sesuai dengan sebagian kecil dari ukuran layar untuk mempercepat rendering awal setiap halaman.sumber
Override software rendering list
,GPU compositing on all pages
danThreaded compositing
pada Pi, tetapi tampaknya tidak ada perbaikan yang jelas. Saya juga pernah mencoba flag-flag itu di PC, sepertinya tidak ada perbaikan juga.Override software rendering list
buka demo WebGL. Untuk mengujiThreaded compositing
coba gulir ketika halaman besar masih memuat.