# RZ/G2E 性能確認 ## benchmark https://browserbench.org/Speedometer2.1/ https://browserbench.org/ARES-6/ http://chromium.github.io/octane/ ## raspi setup - 2 core 起動するため /boot/cmdline.txt に maxcpu**s**=2 と記載する - sudo reboot 後に `top` や `cat /proc/stat | grep cpu` にて 2 core 駆動になっていることを確認 - 画面スリープ停止 `sudo raspi-config` -> 2 Display Options -> D4 Screen Blanking -> Would you like to enable screen blanking?で<いいえ>選択。 - CPU クロック固定は `apt install cpufrequtils` してから `sudo cpufreq-set -g performance` でパフォーマンスモードにして `cpufreq-info -p` で周波数と現在のモードを確認 ## raspi firefox deb packages - raspbian - jesse (8) 最終リリース https://downloads.raspberrypi.org/raspbian/images/raspbian-2017-07-05/ - apt でインストールするパッケージの DL 先が変わってるので `/etc/apt/sources.list` を `deb http://legacy.raspbian.org/raspbian/ jessie main contrib firmware rpi` に書き換えた上で `apt update` してから `apt install firefox-esr` で Firefox 52 がインストールされる - ここで firmware 含めないと raspberrypi-kernel などが upgrade 対象に含まれない - strech (9) 最終リリース https://downloads.raspberrypi.org/raspbian/images/raspbian-2018-04-19/ - raspi os は buster (10), bullseye (11) のみ - legacy firefox-esr https://legacy.raspbian.org/raspbian/pool/main/f/firefox-esr/ - 68.9.0 http://legacy.raspbian.org/raspbian/pool/main/f/firefox-esr/firefox-esr-l10n-ja_68.9.0esr-1~deb8u2_all.deb - firefox-esr - http://raspbian.raspberrypi.org/raspbian/pool/main/f/firefox-esr/ - http://mirrordirector.raspbian.org/raspbian/pool/main/f/firefox-esr/ - 91.11@deb9u1 http://mirrordirector.raspbian.org/raspbian/pool/main/f/firefox-esr/firefox-esr-l10n-ja_91.11.0esr-1~deb9u1_all.deb - 91.13@deb10u1 http://mirrordirector.raspbian.org/raspbian/pool/main/f/firefox-esr/firefox-esr-l10n-ja_91.13.0esr-1~deb10u1+rpi1_all.deb - 102.6 http://mirrordirector.raspbian.org/raspbian/pool/main/f/firefox-esr/firefox-esr-l10n-ja_102.6.0esr-1+rpi1_all.deb - 102.6 http://mirrordirector.raspbian.org/raspbian/pool/main/f/firefox-esr/firefox-esr-l10n-ja_102.7.0esr-1~deb11u1+rpi1_all.deb ## links https://github.com/webdino/gecko-embedded/wiki/Developer-Boards#raspberry-pi-%E6%AF%94%E8%BC%83%E5%8F%82%E8%80%83%E7%94%A8 遅い原因は 10 年くらい古いツール/コードとその時代に分かっていた最適化テクニックがほぼ何も使われていないと思われること - 巨大な JS ファイルを読み込んでいるため FCP までの時間が大変長い。JS の JIT 処理などに時間が掛かっているのもそれが元々悪い - 基本的な HTML のレンダリングは事前ビルドした上で実行時に変更のある部分だけを動的に書き換えるコードにすべき。CSR での SPA はページ読み込み・遷移時が重たくなる最も悪いパターン - 近代的なビルドツールでは Tree Shaking などもされるが単なる gulp での連結でありビルド時の最適化は一切されていない - backbone.js 単体は遅くないが jQuery 依存で遅い - backbone.js version 古い - 何故か 2013 年リリースの 1.0.0 が使われている - jQuery version 古い - そもそも jQuery を使うことによるオーバーヘッドが結構あるのに対して更に古いバージョンを使うことで遅い - オーバーヘッドの基本 https://www.measurethat.net/Benchmarks/Show/6633/1/jquery-vs-getelementbyid-vs-queryselector - DOM 付与オーバーヘッド https://www.measurethat.net/Benchmarks/Show/11651/0/vanilla-js-vs-jquery-dom-perfomance-loop - jQuery バージョン間比較 https://www.measurethat.net/Benchmarks/Show/8297/0/jquery-versions-benchmarch-latest---351-take-2 - jQuery 使い方が悪い - CSS 設定を一度に行わない https://measurethat.net/Benchmarks/ShowResult/249929 - メソッドチェインが出来る所でしない - more and more... ## vue などとの比較 https://blog.thangman22.com/rendering-speed-performance-challenge-with-famous-front-end-framework-196c876a68af ![](https://i.imgur.com/HoU2trw.png)