MVNOを選ぶ前に知っておきたい、実はスマホを「スピードアップ」することはできないという話

結論からいきます。絶対にできません

迂回策(根本的な解決にはならないけど、擬似的に高速化を体感する方法)ならあります。

最近というほどでもなく、ずっと前から掲示板や知恵袋などのユーザーコミュニティを覗いていると「ゲームやアプリが重い」という話をする方がいます。

動作がカクカクしてうまく動かせない、読み込みに時間がかかる、処理が途中で止まる、挙句の果てにはアプリが突然落ちる等、現象はさまざまです。

こうした事象の改善策として、ほとんどの場合「RAMを空けろ」という方法が提示されます。

しかし、はっきりと言ってしまえばRAMがどれだけ空いていても、極端な話そのアプリ1個しか動いていない状況だったとしても(実現不可能だけど)、恐らくゲームが快適になることはありえないでしょう。

その理由を知るには2つの数値の意味を理解する必要があります。

処理速度に直結するのはCPUとRAM

まずは端末の優劣や選定基準として最も大きなウェイトを占めるだろう「スペック」に関して、基本的なことを知る必要があります。

基本的に端末を選ぶ際にスペックを気にする場合、次の4つを比べて満足行く数値を探せば大丈夫です。

  • CPUのコア数&クロック数
  • RAMの規格と容量
  • ROMの容量
  • バッテリー容量

他は全てオマケです。

まずCPUについて、これのスペックは「○○コア」という部分と「○GHz」という部分の2箇所を見ます。

photo by Ⓒ Mark Sze - 2009

CPUとは「頭脳」です。他の物に例える場合、机に座って勉強している人を想像してください。「」がCPUです。


そしてコア数とは「人数」に置き換えられます。1つの机で4人が共同作業する様子を「クアッドコア」といいます。

つまりCPUのコア数とは「同時に(並行して)作業できる頭脳の数」になります。ただしこの人数がどれだけいても「ディスカッション」にはなりません。処理方法はベルトコンベアのような「流れ作業」です。それぞれのコアに得意不得意があるわけではないかわりに、相談したりすることもありません。

次にクロック数(周波数とも)ですが、これは人にあてはめるならIQのようなもの、つまり「1つの頭脳が処理できる力」になります。

頭の良い人が2人集まるとクロック数の高いデュアルコアになります。平凡な人が4人集まるとクロック数の低いクアッドコアになります。

では、上記どちらがより素早い処理を行えると思いますか?

答えは「どちらともいえません」。

なぜならその判断をするにはもう1つ要素が必要だからです。処理する内容、つまり机に置かれた問題の量と質(難しさ)によるからです。

簡単な問題を少しなら平凡な頭でもすんなり処理できます。ここまでをまとめると、端末を選ぶ時にスペック表に書かれたCPUの数値を比べる際は「どんな処理をさせることがあるか」次第で必要な力が決まってきます。闇雲に高スペックを狙うと値段が高くなり、面倒くさがって低スペックを選ぶと後で後悔します。

また、このことから「処理が重い」状態の時は、全員が全力で取り組んでも一度に処理しきれない量の「問題」が机に積まれている状態のことを指します。

1人1人の頭が良ければ(1つ1つのコアのクロック数が高ければ)、1人(1つのコア)が処理できる問題の量は増えます。

でも、単純に人数(コア数)を増やしておけば、人海戦術的に処理をスムーズにこなしていくこともできます。

ただ1つ注意点として、最近のハイスペック機によく使われる「オクタコア」については「8人で並行して処理する」ことにはなりません

現在主流のオクタコア(Qualcomm(Snapdragon)、NVIDIA(Tegra)、Samsung(Exynos)、MediaTek等から出ています)CPUは「クアッドコアを2個載せた」構成になっていることがほとんどです。

これは主に発熱と消費電力の関係で、処理に完全に影響するわけではありません。

多くの場合は「頭の良い4人」のコアと「平凡な4人」のコアが同居しており、必要に応じて担当者を切り替えることで消費電力を抑えることができるようになっています。有名なのはARMの「big.LITTLE」構想です。

※「ARM」とはCPUのアーキテクチャ(設計図のようなもの)のことです。ARMアーキテクチャを持ったCPUはARMの定めた法則で電気信号を解し、命令を出すと解釈して良いと思います。そしてこのARMアーキテクチャはモバイル向けプロセッサのほとんどに採用されており、現在では「Cortex-A○」などという形式にもなっています。QualcommやNVIDIAだけでなく、iPhoneのCPUもARMアーキテクチャです。

最後にもう1つだけ余談、CPUがなかなか高速化できない原因としてどうしても切れない関係にあるのが「発熱」です。

パソコン向けに設計されたIntel製CPUなどは、コア数・クロック数ともに最新のモバイル向けCPUと大差ないこともありますが、それでも例えば「Chromeで20以上のタブを開く」「MMORPGどころかタイミングが命の高画質FPSを遊ぶ」「DVDに動画を焼く」といった超重たい作業もこなせます。

しかしその代償として高い熱を発します。電気を通してるんですから当然ですけど、特にデスクトップ用のCPUともなると100度なんて秒で超えます。

PCの場合は問題ありません。筐体が大きいため、ファン(扇風機)のような冷却装置をつけられるからです。

ですが薄くて小さいスマホにそんなものつけれません。

というわけで、パワーアップするとどうしても上がる発熱の解消に各社が血道を上げているのが現状です。

現状ほとんどの場合はヒートシンク構造(熱伝導率の高い銅などの金属を使ったもの)によって熱を外に逃がす方式になっており、外部から冷たい空気や液体をあて一瞬で冷却できるPC用放熱装置とは雲泥の差があります。

このへんもジレンマの1つですね。

次世代CPUが省電力化を果たしたと声高に発表されるのは、(通電量が減った分)それだけ発熱も抑えられるとアピールする目的もあります。同時に処理効率のUPも伝えることで「性能をトレードオフしたわけではなく、進化したのだ」という根拠となります。

CPUについてはここまで。では次に、さっきから言ってる「机」とは何でしょう?

これがRAMです。

photo by Ⓒ Matthew - 2009

数学と地理と科学の問題集が乱雑に置かれた机を想像してください。そしてそれを4人が顔突きあわせて取り組んでいます。

複数の問題を同時に処理する状態をマルチタスクといいます。

机が広ければ広いほど大量の問題集を置いておくことができます。つまり「机の面積」=「RAMの容量」になります。

本来はもう1つ、RAMの規格というのも判断基準になります。これは要するに転送速度の目安となるものです。

RAM・ROMなどいわゆる「メモリ」とは「記憶装置」のことです。
※余談ながら「RAM」とは「ランダムアクセスメモリ」の、「ROM」とは「リードオンリーメモリ」の略です。

役割は読んで字のごとく、データを記憶する装置です。

「データ」とは電気信号(電子)の形式でやりとりされます。これを101011…等の、いわゆる2進数に置き換え、ある一定の規則性をもって「CPU」が理解し、命令として出力されます。これを「バイナリ(形式、あるいはデータ)」といいます。

実態が電気である以上、データを物理的に「その場に留める」ことは不可能です。同じ形の雷を10秒以上見たことはありますか?

これを実現し、1つのデータを長期間保持しておくために開発された装置が「メモリ」です。

RAMとROMの性能的な違いについては余談になるため後に回して、以上のことから電子機器による「データの処理(読み込み、書き込み、実行等)」とは次のような流れで行われます。

一応補足として、RAMが「机」である場合ROMは「本棚」や「引き出し」等の収納スペースになります。

【ROMに記憶されたセーブデータを読み込む】

【一旦データをRAMに置いて処理が開始されるのを待つ】

【CPUの手が空き次第RAMからデータを拾い上げ、データを理解して命令に変換する】

【CPUから出力されたものを再び置き、ROMに書き込まれるのを待つ】

【ROMに新しいセーブデータが上書きされる】

RAMの役割は「机」、これを電子機器に戻して考えると、データとして出力された電気信号を2回にわたって留める役割を持ちます。

すなわち、「CPUが処理するまで留め」た後、「CPUから命令を出力した結果(ゲームで言えば進行状況)をROMに上書きするまで留める」感じ(このへんちょっと自信なし;)。

なぜこんな面倒な方法を取るのか、ストレートにROMから読みだしたデータをCPUが即座に処理してROMに上書きしてはいけないのかというと、それはできません。

これはコンピュータの仕組み的な話ではなく、物理的にできないんです。

なぜかというと、ROMはRAMの1/100程度の転送速度が出れば「高速」の部類に入る程度の性能しか持っていないためです。

ベンチマークテストをするとわかりますが、ROM(こちらは「ストレージ」とも言い換えられます)は数十MB/秒~100MB/秒くらいの転送速度になると思います。

対してRAMは、2014年モデルに採用されたLPDDR3という規格なら5GB/秒くらいの速度が出ます。

これはメモリの使い方(を念頭に置いた設計)にも影響されています。

photo by Ⓒ Tonymadrid Photography - 2010

ROMは「ストレージ」とも言い換えられる通り、その役割は「データを長期間保持する」ことにあります。

一方でRAMは「一時的に置いておく」場所です。机を散らかしている人には想像しづらいかもしれませんが(笑)、たとえば学校の机などは朝登校した直後は何も乗っていないはずです。

またRAMはCPU(頭脳)に直結しているため、受け取ったデータをすぐに渡さねばなりません。RAMの転送速度が低いせいでCPUが最大クロックで動かせないような状況が起こってはならないんです(スペック詐称になります)。

このためRAMは転送速度が極めて高速になるよう設計されています。その半面、RAMにデータを保持するためには電力が欠かせません。

たとえ作業途中であったとしても、RAMに電力が送られてこなくなると全てのデータが失われます。問答無用で全部です。

「再起動」直後の端末が軽やかに動くのも、一旦電源を落とした際にRAMに乗っていたデータが全部消えたためです。

これに対してROMに一旦記憶された電気信号は何ヶ月もの間変化しません。しかも(ここが最も大きな違いですが)データを維持する際に電力を必要としないため、端末の電源を切ってもデータが失われません

またROMは小さなスペースに信じられないほど大量のデータを保存できます。小指の第一関節まで程度のサイズしかないマイクロSDも、今や200GB保存できる時代です。200GBってDVD何枚分だと思います?

保持(特に容量)を再優先にした結果転送速度はそこまで早くならなかったようです。

更に補足として、SDカードも「ROM」です。こちらはもっとわかりやすく「スピードクラス」や「UHS」という規格で転送速度を見ることができます。

 【講座】ショップにカモられるな!スマホで使うmicroSDカードの選び方

XC規格でもない限り、基本的にはclass10の外部ストレージ(SDカード)よりも内部ストレージ(ROM)のほうが高速であるとは思います。

以上が「CPU」「RAM」「ROM」の役割です。これらを端末ごとに比べ、さらに「自分はこの端末でどの程度の処理をするだろう」を考えて必要なスペックを割り出します。

電話とメール、LINEにTwitter、Facebook、Google+とカメラを少し…程度なら大したスペックは必要ありません。というより、国内で出回っている端末のスペックならほとんど事足ります。

ホーム画面をカスタマイズしたり、ウィジェットを複数置いたり、天気予報を頻繁にチェックしたり、反射神経が必要なソーシャルゲームをプレイしたり、動画を見たりといった操作を頻繁に行なうのであればある程度のスペックが欲しくなります。

特に「ゲーム」と「動画」は重くなりやすく、また「処理」だけでなく「通信」を併用することが多いため高速回線や容量の豊富なプランを選びたいところです。

通信回線についても判断基準はありますが、今回はちょっと長くなっちゃったので次回に回します。

自分が端末に強いる負担について知っておく必要があることとしては、「処理」とは決して一過性ではなく継続して行なう必要がある点です。

天気アプリやニュースアプリ、SNSなどを使う場合、定期的に最新情報を取得する必要があります。また特に天気アプリの場合、ウィジェットとして常に最新情報を表示しっぱなしにすることもあります。

これらの処理にはCPUが使われます。そして「常に」情報を表示する必要のあるウィジェットは、その特性上データがRAMに乗りっぱなしになります。机の上に時計やカレンダーを置くことがありますよね、あんな感じです。

一見して変化がない(たとえば2時間ごとに更新する天気情報は、一度更新されてから2時間は同じものが表示されたまま)にみえても「処理」は秒単位以下の頻度で繰り返し行われています

これを「描画」といいます。要するに「ディスプレイのこの部分にこの情報を表示する」ためにもCPUが使われています。

そしてこれは1ドットごとに制御されるため、ディスプレイに置かれたドットの数が多いほど処理負担も増えることになります。ドットの数とは「解像度」のことです。
※このため「描画」とは「ディスプレイのこの位置のドットをこの色にする」命令を全てのドットに対し同時に発するような作業になります。
※描画の更新頻度はFPS(Frame per second / 秒間フレーム数)で表現されることがあります。30FPSなら1秒間に30回描画します。

ディスプレイが大きくても解像度が低いから画像が粗いということがあります。が、その場合同じサイズで解像度の高いディスプレイに比べて「描画」にかかる処理負担が少なく済むため、バッテリー消費が少ない特徴もあります。

電池容量が少ないミッドレンジ端末で多く採用される組み合わせです。

主要装置のスペックに関する基礎知識は以上です。

スマホの処理装置は交換できない

これが冒頭の結論、「スピードアップは絶対にできない」の根拠です。

スマホに決められたCPUの速度(処理を担当する人物の頭の良さと人数)、RAM容量(机の大きさ)、ROM容量(収納スペースの広さ)などは購入した時から一切「追加」できません。

唯一ROMだけは外部から継ぎ足すことができますが(SDカードとUSBストレージ)、データ処理に関する情報が外部ストレージに置かれることはないため「机」に直結しません。

イメージするならトランクとかアタッシュケースのようなものですかね。決して「引き出し」を追加することにはならないんです。

値段を妥協した結果ゲームが重くて動かない場合、そのゲームを快適に動かす方法は基本的にありません。

掲示板などでよく「重い」と相談している方も、いざスペックを聞いてみると2年前の端末だったりSIMフリーのミッドレンジだったりすることが結構あります。

正直、ご愁傷様ですとしか言いようがありません。例外については次に書きますが、多くの場合スペック不足を解消するためには端末の買い替えが必須になります。

こうした端末の状況とはおかまいなしに、ソフトウェアが求める要件は上がり続けています

MMORPGを長くやっている方ならわかっていただけると思いますが、かつて主流だった2Dのネトゲが3Dになる時、必要なCPU要件やネット回線を満たせずにガクガクでとても遊べなかった経験をお持ちの方は少なくないはずです。

同じ状況がモバイル業界にも到来しつつあるように思います。

もちろんコンテンツによりますが、より美しい画像・映像・音質やより高い表現力、より高い自由度を求めた場合、どうしても処理するデータ量は増えるものです。

特に要求される量が跳ね上がっているのがROMです。ゲームの基本データだけで1GB前後、セーブデータを入れると更に膨れ上がるようなものも存在します。

また、SNSとゲームが特にあてはまるのですが、オンラインで作業するコンテンツは「処理」のほとんどをサーバー側が担っており、端末では受信したデータをCPUが解析して「描画」する、そして新たな操作による進捗を送信するといった操作に終始することがあります。

このため「通信速度」もかなりの水準が求められることがあります。

「改善」だけならできます

「RAMを空ける」「不要なアプリを削除する」「タスクキラーを使う(Tomはおすすめしません)」「再起動する」「初期化する」……全ては改善策です。それ以上の意味は持ちません。

つまり、次第に重くなっていった場合にのみ効果が期待できるものです。

それまで快適だったのに特定のアプリを起動した時だけ重くなる状況を根本的に解決し、常に快適な状況を手に入れることはソフトウェアだけでは絶対にできません。

さっきのイメージにあてはめれば、上記改善策はせいぜい「机の上を整頓する」作業であり、「スペースを空ける」ことはあっても「広げる」ことにはならないんです。

安さに釣られて自分の想定する動作をこなしきれないスペックの端末を買った場合、まさしく安物買いの銭失いとなります。

僕も基本的にそうしていますが、格安スマホをおすすめする対象は「子供」「高齢者」「ビギナー」など、マルチタスクをほとんど必要としない人に限定されます。

複数のSNSをやったり、LINEで何十人もの友達とわいわいしたり、ゲームでランキング上位を狙うようなユーザーを対象に含めたことはありません。小さなお子さんや高齢の方でもこうした操作をする場合はおすすめしません。

上記以外にはいわゆる2台目以降となる、「利用方法を限定した場合」などを想定します。

格安スマホとはビジネスマン向けのノートパソコンのようなものです。いつでもどこでも「最低限」の操作をするために必要な端末であり、決してデスクトップのように「1台で全部まかなう」役目を負うことはできません。

スマホを選ぶ時はこのへんも考えてみてください。特にはじめて機種変更する場合、「妥協」がかえって後悔を呼ぶことも少なくないと思います。

スペックを強引に補う裏ワザ

一部の端末であれば強引に(そして擬似的に)スペックアップをすることも不可能ではありません。

たとえば、BootLoaderのUnLockが可能な端末であれば、CPUのオーバークロックが可能なカスタムカーネルへとROMを焼きなおすことによって処理パワーを底上げできます。

ほとんどの場合はクロックダウンしかできないので、省電力効果はあっても処理の高速化には繋がらないことが多いですけどネ。

またroot端末の場合、「Link2SD」やXposedモジュール「XInternalSD」等によってSDカードを内部ストレージとして使うことができます。

これによって容量の底上げも可能です。

昔GXの時は154氏のzramモジュールやEntropy Fixer+Seeder等の組み合わせによる乱数の確保、V6 SuperCharger等のスクリプトによる処理の効率化等によってある程度高速化することもできましたね。

ただしこれらもハードウェアの能力値を底上げすることにはならないはずなので、「改善」の域を出ません。

処理が効率化された結果「順番待ち」の頻度が減って多少高速になることはあっても、パワーアップしたわけではないのです。

またこれらの作業は「保証」と「安定性」を捨てるというリスクを抱えます。失敗してガックガクになったり、SystemUIが落ちまくったり、ブートループに陥ったことも何度もありますし、そうした場合にサポートが受けられない苦しみもあります。

こうした作業を行なうには「壊れても構わない」自己責任と、「不具合を自分で解消できる」だけの知識、さらに「SDKやAPI、スクリプト」といった難易度の高い作業も発生するためハードルが高くなっています。

よくわからない場合はおすすめできない上に、素人が安易に考えるような劇的な効果も期待できません。

そんな感じ。

3 COMMENTS

通りすがり

記事拝読しましました、すごく分かりやすい説明に感服いたしました。他の記事でもそうですが、とても頭の良い方の書かれる文章という印象を受けました。

返信する

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です