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

Apple、iOSアプリに対し64ビット対応を義務付けへ」記事へのコメント

  • by nojiri (27623) on 2014年10月22日 14時06分 (#2698140)

    ARMの32bit命令セットから64bit命令セットに切り替えることで、利用できる汎用レジスタが倍増します。
    さらに、命令デコーダの仕様上、64bit命令のほうが32bit命令より速く処理できるとみられています。

    詳しくは、後藤弘茂氏の記事をお読みください。
    http://pc.watch.impress.co.jp/docs/column/kaigai/20130918_615784.html [impress.co.jp]

    という訳で、Appleは最新のiPhone/iPadに本来の性能を発揮させるため、64bit対応をデベロッパに要求しているのでしょう。

    • by Anonymous Coward

      iPhone6や6Plusは、OSやプリインストールアプリは当然64bitのバイナリだと思うんだけど、どんな感じ?速くなった?

    • by Anonymous Coward

      わずか数年前、Thumbモードでコンパイルして必死にバイナリサイズ減らしてたのに…。

      # 年は取りたくないもんだ

      • by Anonymous Coward

        今日現在もThumbモードでコンパイルしてます。遅いうえに狭いバス幅にしてケチっているので、漫然とARMモードにしちゃうと逆にメモリサイクルのペナルティのほうが大きかったです。で、ARM命令を使うメリットがある関数に絞ってモードを切り換えると。

        • by Anonymous Coward

          ARMってそういう小技がある意味無駄にたくさんあるから
          最適化に時間とられますね。
          趣味でやるなら楽しいんだけど、仕事的にはどうかなという気がする。

    • by Anonymous Coward

      でも個々のアプリのメモリ使用量が増える。

      • by Anonymous Coward

        単位時間あたりにアクセスするメモリ量が増え、キャッシュが圧迫されるというデメリットも隣り合わせ。

      • by Anonymous Coward

        そんな思いっきり1か0かの主観的コメント出されても…。
        一般的なアプリでは使用メモリの多くはコードではなくデータ領域だろうから、
        64bit化でメモリ使用量が増えるかといえば「殆ど変わらん」のが実態でしょう。

        • by Anonymous Coward

          データ領域は0の書かれるところが増えて使用量が増えるんじゃないの?

          • by Anonymous Coward

            大きなデータはほとんどが配列として格納されてるでしょ。だったら配列の最後に1/2の確率で32bit増える程度の問題でしかない。

            • by Anonymous Coward

              ごめん、全然わからない。

              配列の最後だけ32bitが64bitになるって、どういう状況?

              • by Anonymous Coward

                アラインメントを揃えるためのパディングのことを言っていると思われる(32bitは4で、64bitは8で割り切れるアドレスにデータを置いた方が効率的)。

                そこまで知っている人が、ポインタサイズが2倍になる事実を無視しているのは謎だが。

              • by Anonymous Coward

                なるほど。

                64bit対応といっても、アプリで使っている32bit整数の変数は1つも64bit整数にならないという場合ね。
                まあ、普通のスマホアプリで64bit整数が必要なものって考えにくいのは確かだが。

                # 64bit整数を使いたいのは21億円以上の計算を速くしたい電卓くらいか

            • by Anonymous Coward


              よく解らんけど、レジスタも32bitから64bit化されるんでしょ?
              そしたら、10000個の整数の配列を管理しようとしたら、単純に倍になるんじゃないの?

    • by Anonymous Coward

      IAアーキテクチャもx64になってレジスタいっぱい増えたけど、早くなったという話はあまり聞かないなあ。

      # IEが早くなったんだっけか?

      • by Anonymous Coward

        レジスタ増加に伴いコンテキストスイッチでレジスタ退避にかかる時間も倍になったりします。64bit化で命令内のアドレス指定が4バイトから8バイトになり命令キャッシュサイズを倍にするなどしないとキャッシュミスが多発するようになったり…。

        • by Anonymous Coward

          64bit化で命令内のアドレス指定が4バイトから8バイトになり

          アドレス指定なんて繰り返し実行されるもんでもないのでパフォーマンスに響く部分ではないね。

      • by Anonymous Coward

        Vista出る前の話ですが XPx64用に自作の画像処理プログラムをx64コンパイルして試したときは
        C++関数の変数渡しがスタック渡しからレジスタ渡しに変わって40%くらい速くなって感動した記憶があります。

        VC++のx64コンパイラも出始め練れてなかったのか、部分的にオプチマイズ禁止にしないといけなかったり、
        プログラムのバイナリサイズが激増だったりしたけど。

        • by Anonymous Coward

          C++関数の変数渡しがスタック渡しからレジスタ渡しに変わって40%くらい速くなって感動した記憶があります。

          そういうとこは32bitでもインライン関数で効率化図れるとこですね。

          • by nekopon (1483) on 2014年10月23日 10時16分 (#2698680) 日記
            そうやろうと思ってたら物理レジスタ不足で涙目(泣く泣くスタックに退避)、というのはx86あるあるですね
            親コメント
            • by Anonymous Coward

              「32bitでもインライン関数で効率化図れるとこ」なので、64bitでも同様です。関数の中身より呼び出しにコストが掛かる部分についてはインライン関数化で単純に効率化が図れますよ。

      • by Anonymous Coward

        たぶん、根拠の提示もなく頭おかしいといっても、見た人はwwwWWWww乙くらいしか返せないと思う。

        • by Anonymous Coward on 2014年10月22日 19時15分 (#2698376)

          今のスラドなら確かにそうかも。

          親コメント
        • by Anonymous Coward

          長ったらしい引用なんてしてないで、どこがおかしいか書けばいいのにね。
          それができなければ、「ARM32bitはクズ、理由は自明、そんなこともわからないのか?」っていう人と同レベル。
          こういう人が一番恥ずかしいと思う。

          • by Anonymous Coward

            32bit ARMについての話題は既出 [srad.jp]

          • by Anonymous Coward

            【山田】つまり今のARMの32bitはひどいと。
            【後藤】ひどい。だって、僕の知り合いでネイティブARM 32bitに触れた人は皆「変態命令セット」って言ってるし(笑)。

            僕のお友達が言ってるんだもんというこの人のレベルはどの辺りですか?

      • by Anonymous Coward

        全部合ってるよ。
        今時のコンパイラは、レジスタ数無限の仮想アセンブリを生成して、ターゲットCPUのアセンブリに変換するので、
        レジスタ数が少ないとレジスタ割り当てが効率良く出来ない。
        常に効率的なレジスタ割り当てアルゴリズムは存在しないので、余裕が有るほうはコンパイラには優しい。

        • by Anonymous Coward

          いまどきのコンパイラはよく使われるデータを優先してレジスタを使用するので、レジスタは何個ぐらいあればまあ適当ってセンはある。
          その辺分かってない奴は多ければ多いほど良いみたいな勘違いをする。

        • by Anonymous Coward

          で、レジスタの数が13個では「ひどい」という根拠はまだですか?

      • by Anonymous Coward

        ある程度分かってる人は後藤弘茂の記事なんて読んでないだろうし。
        昔から記事の質はかなりアレだからな。

    • by Anonymous Coward

      32ビットサポートしたくないだけでしょ。
      互換性軽視だけど、そういう商売の仕方なのでいいんじゃないかな。

      • by Anonymous Coward

        将来的には32ビットを切るんだとしても、一時的にでも32ビットと64ビットの両方サポートしなきゃいけなくなるんだから、「~したくないだけ」って理屈はない。

UNIXはただ死んだだけでなく、本当にひどい臭いを放ち始めている -- あるソフトウェアエンジニア

処理中...