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

プログラミング言語とエネルギー効率」記事へのコメント

  • マシン語じゃないの?
    作る速度は最低かもしれない

    • これがそうでもなくて。コンパイラの最適化はある部分で人間のソレを超えている状況。
      親コメント
      • by Anonymous Coward

        人間が書いたマシン語が一番速かったのはインオーダー実行の初期32ビットCPUの頃では?
        キャッシュとか分岐予測とかアウトオブオーダー実行とかをCPUが実装しだした時点で人間がついていけないもの。

        • by Anonymous Coward on 2020年10月23日 0時45分 (#3911572)

          いや、ついていけよ。
          ついていけないとか言わずに、ついていけよ。
          今でも性能出ない部分はアセンブリ手書きだよ。
          マルチコアが普通になったおかげで、今はコンパイラの最適化ではとても期待性能出せなくて、コンパイラの出力を人が最適化してるよ。

          親コメント
        • by Anonymous Coward

          しかも今は当たり前のようにマルチコア環境なので、同時並行で動作する裏のタスクが変化する状況では、
          JITコンパイラの威力もバカにできないという・・

        • by Anonymous Coward

          雑なアセンブラだとCの方が速いとかは確かにある。
          でも、本当に速度が必要な部分は今でもアセンブラ使ってるよ。
          x264とかx265なんかでも、コアの部分はアセンブラコードがある。

          ライブラリやドライバを使う側の人は滅多に触らなくなったけど、作る側の人は今でもアセンブラが必要。

      • by Anonymous Coward

        それは、高級言語で設計して、コンパイラの最適化と人間の最適化を競っている場合ですね。
        設計の段階から、そのCPU(マシン語)を意識してつくらないとだめだ。

        例えば、C言語にないキャリーフラグのつかったアセンブリ言語で書かれたものを、C言語に置き換えて最適化しても
        アセンブリ言語を超えることは、まずない。超えようと思えば、C言語で再設計するだろう。

        • by Anonymous Coward

          そりゃ高級言語も最終的にはマシン語になるのだから
          マシン語で最高の性能が出るように設計して最適な実装がされたものと
          コンパイラがマシン語に変換したものなら前者が勝つってのは自明でしょうね。
          問題はマシン語で最高の性能になるような設計(と実装)を人が出来るのか?なわけで。

        • by Anonymous Coward

          例えば、C言語にないキャリーフラグのつかったアセンブリ言語で書かれたものを、C言語に置き換えて最適化しても
          アセンブリ言語を超えることは、まずない。

          それも程度によると思う。Cのコードから適切にキャリーフラグを使う機械語を出力するなんてこと、今の最適化の技術で実現可能だとしても自分は驚かない。

開いた括弧は必ず閉じる -- あるプログラマー

処理中...