パスワードを忘れた? アカウント作成
この議論は賞味期限が切れたので、アーカイブ化されています。 新たにコメントを付けることはできません。

HMD Global CPO曰く、スマートフォンのRAMは4GBで十分」記事へのコメント

  • by Anonymous Coward on 2017年08月30日 16時45分 (#3270447)

    ここ数年にわたり、
    PCにおける一般的な搭載メモリ量が2GB~4GB程度で十分、
    それ以上は各種コンテンツ編集やビルド作業、仮想マシン起動などの重たい作業をしない限りは不要というのが続いていますね

    スマホOSにおいては、フラッシュメモリをストレージにする前提から
    メモリが足りなくなったときにスワップアウトはさせず
    アプリをステートセーブして終了させる + 次回はステートロードしつつ起動させる
    という実装になっている点が異なりますが、
    これが大きく影響するのは

    「重たいゲームを複数同時に起動し、さらに裏でゲームが終了していることも許さない」

    状況だけというのが実際のところでしょう
    ポケモンやってる知り合いいわく、位置情報ゲームではとくに重要とのことです

    Androidの場合には利用者が好きな機種を選ぶことができますので、
    ゲーム多重起動に向いた大容量(6GBや8GBなど)のメモリ搭載機種があってもいいのではないかと思います

    iPhoneにおいてはこのような利用ケースごとのメモリ要求量のバラつきはとても困った要素になりますね
    ラインナップが少ないということは自由が少ないということ、まさにその通りになります

    • by Anonymous Coward on 2017年08月30日 17時20分 (#3270477)

      > iPhoneにおいてはこのような利用ケースごとのメモリ要求量のバラつきはとても困った要素になりますね
      > ラインナップが少ないということは自由が少ないということ、まさにその通りになります

      毎度毎度、なんかAppleを貶さないと気が済まないみたいだがw、違うOSでメモリの量を比べても意味があるまい。
      iOSのメモリ利用効率はAndroidよりはるかに良い [cultofmac.com]ので、
      もともとそんなにメモリが要らないという話だよ。

      Androidはそもそもの成り立ちがLinuxの上にJava乗っけてという変態構造の上に、
      JITが走ったり、GCが走ったりと裏でやってることが多く、メモリとプロセッサパワー食いな体質のOSだ。

      親コメント
      • by Anonymous Coward

        Linuxの上にJavaって別に変態とは言えないでしょう。
        携帯Javaとかも基本そんな構成ですよ。
        ちなみにAndroidは今はAOTですし。

        リンク先の記事ではAndroidはGCがあるのでメモリがたくさんいると書いてありますが、要はメモリが多めだと開放するまでに時間が稼げるという話であって二倍の内容が保存できるという話ではありません。そんな魔法の技術はありません。
        そしてGCが働くために必要な余計なメモリなんてギガバイト単位の話ではありません。
        なにしろ(Java用の)メモリ2MBとかでも機能していたのですよ?
        加えてJavaではGCがあるというなら、ネイティブならメモリリークがあります。

        • by Anonymous Coward on 2017年08月30日 20時33分 (#3270620)

          携帯Javaとかも基本そんな構成ですよ。

          それはアプリの実行環境としてJavaVMが載っているという話だろう。
          Androidの場合はアプリ実行とは関わらない、OSそのものの機能の多くがJavaで書かれていて、
          Linuxの上で動くVMの上で動いている。そんなのは他ではあまり見かけないが。

          加えてJavaではGCがあるというなら、ネイティブならメモリリークがあります。
          プログラマーが努力すればメモリ効率は上げられますが、Javaでもこまめにメモリを開放すれば同じことができます。

          いや、プログラマの技量の落ち度や、「努力すればできる」みたいな話まで持ちこんでくるのはちょっと違うんじゃないかなw

          親コメント
          • by Anonymous Coward

            将来的な互換性を重視する実装では最初から仮想マシンをかましているのはそこそこある
            XBOX ONE とかもそんなん

            • by Anonymous Coward

              それ、最近のXBox Oneになってから出てきた話だろうにw
              しかもXBoxの場合は、仮想マシンの上で動くのは丸ごと完全なOSだ。
              AndroidみたいにOSの機能の半分はLinux、半分はJavaVMの方で動いているというのは、やはり変態的だ。

            • by Anonymous Coward

              なんか話が変わってない?
              Java仮想マシンみたいなのと仮想マシン上でOSが走ってるってのは全然別よ。
              でも初めて知ったから驚いた。凄いな。
              Windows 10でHyper-Vを有効にすると目の前のWindows 10までなんだか知らん内に仮想化されるようなもんか。

          • by Anonymous Coward

            まぁ他なんてそんなにないですけど、WndowsのUWPやWPFなら結構.NET Frameworkですよね。
            確かに今でもネイティブで書かれている部分が多いですけど、Androidも下層はそれなりにネイティブですよ。多分。
            ちょっとやり過ぎかとは思いますが変態ってのは言いすぎかと。

            言いたかったのはそういう話じゃなくて、

            Linuxの上にJava乗っけてという変態構造

            という表現が変で、Linuxの上に乗っけないならどうするの?という違和感ということです。

            プログラマの技量の落ち度や

            • by Anonymous Coward

              という表現が変で、Linuxの上に乗っけないならどうするの?という違和感ということです。

              JavaアプリのAPIとして選ぶんじゃなくて、ネイティブなアプリが動くようにすればよかったんでねーの?
              Oracleと喧嘩しなくて済んだしさw

        • by Anonymous Coward

          > ちなみにAndroidは今はAOTですし。

          うんにゃ、NougatからまたJITに戻ったよ。OSのセキュリティーアップデートかけるたびに、
          全部アプリをリコンパイルしなおすんで、えらく時間がかかって不評だったから。

          • by Anonymous Coward

            JITに戻ったのではなくAOTとのハイブリッドだよ

            ttps://www.infoq.com/jp/news/2016/04/android-n-aot-jit

            • by Anonymous Coward

              ハイブリッドと言うことは、やはりアプリの実行中に裏で動いている部分があるということではないかね?

              • by Anonymous Coward

                > ハイブリッドと言うことは、やはりアプリの実行中に裏で動いている部分があるということではないかね?

                記事読めよ

                「後でデバイスがアイドル状態で充電中のとき」

                と明記されてる

              • by Anonymous Coward

                記事を読むのは君の方だ。
                アプリの実行中に裏でプロファイラがアプリの実行状態を解析して記録していることが
                書かれているだろうに。

              • by Anonymous Coward

                > 記事を読むのは君の方だ。

                お前が話の流れも無視して顔真っ赤にしてAndroid叩きしたがってるだけだ

                #3270597 を見ればわかるとおり、今話の焦点なのはJIT/AOT「コンパイル」の部分だ

                そしてこれはAndroid Nにおいてもアプリの実行中には基本的には発生しない
                (アプリインストール直後、AOTコンパイルが終わってない間に即アプリを起動して使っている状況のみ除く)

                自分の間違いを指摘されたからって勝手に話を広げて逃げようとすんなよ
                見苦しいんだよ

              • by Anonymous Coward

                ハイブリッドと言うことをうけて、JITコンパイラでなくとも

                > やはりアプリの実行中に裏で動いている部分がある

                と言う話をしているんだよ。
                そもそも、アプリの実行の裏で色々仕事をしているからメモリを食うと言う話が始まりなのに。

              • by Anonymous Coward

                > なるほど、アプリの実行中にアプリのクラッシュなどを判断する処理が動いているiOSは最低ということだね

                それはAndroidだって動いているだろうにw

              • by Anonymous Coward

                >それはAndroidだって動いているだろうにw
                あたりまえ。
                そんなあたりまえの機能と同程度の負荷かもしれないのに、
                > やはりアプリの実行中に裏で動いている部分がある
                こと自体を問題視した発言だったから、#3270666 みたいな書き方したんじゃないかね。

    • by Anonymous Coward

      スマホOSにおいては、フラッシュメモリをストレージにする前提から
      メモリが足りなくなったときにスワップアウトはさせず

      AndroidはKitkatからZRAMが実装され、圧縮されたRAMディスクをスワップ領域として使うというのをやってるよ。

      • そのZRAMってroot化が必須でしかもビルドによっては仕様できないんじゃないんでしたっけ
        ※個人的な質問です

        親コメント
        • by Anonymous Coward

          何処のうわさでそんな話を聞いてきたのか知らないがw、
          ユーザーが端末買ってから自分で有効にするようなもんじゃなくて、
          OSに最初から機能として組み込まれて有効化されているんだよ。

          カスタムROMなんかのフォーラムの話を聞きかじって混同してない?
          ZRAMでググって出てきたリンクに書かれていたことを、
          どういうことが話されている場所かも理解せずにコピーして、シッタカぶって聞いてみただけとか?

          もちろんAndroidは端末メーカーによってAndroidの本来備えている機能を有効にするか無効化するか
          勝手に決められるので(GooglePlayを載せるためのコンパチビリティテストに受かりたいなら、
          最低限サポートすべき機能と言うのは決められているが)、Kitkat以降の機種でも利用していない
          端末はあるかもしれない。

一つのことを行い、またそれをうまくやるプログラムを書け -- Malcolm Douglas McIlroy

処理中...