【iOS 8でもブラウザ高速化「Nitrous」は意味あるのか?についてのお話 [JBApp]】
iOSには高速なJavaScriptエンジン「Nitro」が搭載されているのですが、iOS 8より前ではSafariでしか有効になっておらず、他のブラウザアプリでは無効化され遅い処理となっていました。
そこで現れた脱獄アプリが【Nitrous】! これを使用すると、全てのアプリで「Nitro」が有効となりJavaScriptの処理が高速になります。
ただ、iOS 8では「Nitro」が全てのアプリに解放されたため、「iOS 8だとNitrousが不要なのでは?」というご質問をよくいただきます。
ですが、実はこの認識はちょっと間違いで、全アプリがNitroを使えるわけではないのです。ということで、そこら辺をちょこっとご紹介。的なお話。
iOS 8で「Nitro」を解放
iOS 8が発表された際『高速JavaScriptエンジン「Nitro」がサードパーティアプリにも解放!』といったニュースを見かけたかと思います。
これだけを見ると「iOS 8でブラウザアプリを使うとスゴイ早いんだ!」と思ってしまいそうですが、実はそうではありません。
UIWebViewとWKWebView
iOS 8には【UIWebView】と【WKWebView】という、二つのウェブページを表示するための機能が備わっています。
【UIWebView】はiOS 7以前からあった機能、【WKWebView】はiOS 8で追加された機能です。この二つ、決定的な違いがいあり、それが以下なのです。
-
- 【UIWebView】
- 従来の機能で、Nitroは使用出来ず、処理は遅いまま
-
- 【WKWebView】
- iOS 8で追加された新機能で、Nitroが解放され高速で処理が可能
Nitroが使えるのはWKWebViewだけ
ということで、結論としては「iOS 8だから早くなるではなく、WKWebViewに対応しているアプリだから早くなる」が正解となります。
アプリ側が【UIWebView】のままでは、iOS 8だとしても従来の処理速度のまま…になってしまうのです。
実験
実際にiOS 8.1.1上で実験をしてみました。
Nitroが使えるSafariと、【UIWebView】なためNitro未対応なiCab Mobileを、定番のベンチマークSunSpiderで比べてみます。
結果はSafari【339.7ms】、iCab Mobile【1218.3ms】と、Safariの方が約4倍も速いと言う状況です。
実験②
単純にiCab Mobileが駄目なだけじゃ!?と思われちゃいそうなので、もうひとつ実験。
WebViewというアプリを使うと、アプリひとつで新機能【WKWebView】と従来の【UIWebView】を切り替えて使用する事が出来ますので、次はこれを使ってみます。
結果はWKWebView【338.4ms】、UIWebView【1167.7ms】となり、先ほどと同じくUIWebViewでは遅い結果となりました。
Nitrousを使用する
ということで、ようやく登場【Nitrous】さん。
Nitrousでは、UIWebViewでも「Nitroエンジン」を使用する事が可能になりますので、実際に有効にして再度計測してみましょう。
iCab Mobileが【1218.3ms → 379.9ms】に高速化、WebViewのUIWebViewでは【1167.7ms → 330.3ms】に高速化しました。
結論
【NitrousはiOS 8でも意味があるよ!】
ただし、ChromeやSleipnirなどの場合はWKWebViewに対応するアップデートが行われていますので、Nitrous無しでもSafariと同じくNitroエンジンが使用出来ます。
対応済みのアプリを主に使っている場合は、不要となります。
ちなみに、RSSアプリやTwitterアプリなどの内蔵ブラウザだとUIWebViewのままが多かったりするので、そういった場合には効果アリです。
〆
JavaScriptを多用しているサイト、もしくはそういったアプリ、であれば体感が出来る違いとなりますが、一般的な使い方で体感出来るかというと微妙な部分もあります。
昔のFaceBookアプリなんかは体感出来るほどの違いがあったりしましたが、今はどうなのかな?
ということで、iOS 8でも効果はありますが、使う場合は環境や使うアプリと相談しながら…が良さそうです。
対応してないものに使えば効果がはっきりでるという見解でいいんでしょうかね?ばかですいせまん、、
はい、基本的にはその認識で大丈夫だと思います。
ただ、アプリによっては何故か効果が薄い物が希にあったりしますので、ここら辺は注意が必要です。
なるほど!よく分かりました
ありがとう
MercuryはNitrousでも効果なし
iOS8になってからアプリのディレクトリが変わったと思うのですが、どこに移動されたか教えていただけないでしょうか。