アカウント名:
パスワード:
> コード中の多重ループの個所において、ループの順序を入れ替える> ことによってメモリアクセスの高速化などが期待できるようだ。
「ね、こういう順序でアクセスするようにコード書かなきゃ遅くなるでしょ」っていう実例見せて授業してる私の立場は?
組み込み系だと、本当にコンパイラのバグで最適化をすると動かなくなることが、 (PC上のプログラミングと比べると)結構発生します。
なので、
それも組み込み系で....
ではなく、「組み込み系だからこそ」かと。
まあ普通は、最適化オプションを切るよりは、 コンパイラのバグを避けるような記述に書き換えるんですが。
元コメの者ではありませんが具体例を挙げてみると、ルネサスの Mxx 利用のプロジェクトで、C コンパイラが吐いた asm レベルで問題があったので、チーム内で参照する書いてはいけないイディオム集とコードレビューで対応していました。組み込みだと、怪しい振る舞いのコンパイラでも管理できるならそのまま使うので、リビジョンアップもしないでプロジェクトを回すことは珍しくない。なお、プロジェクト終わってから最新版に上げたら、修正されていたことは確認しました。
より多くのコメントがこの議論にあるかもしれませんが、JavaScriptが有効ではない環境を使用している場合、クラシックなコメントシステム(D1)に設定を変更する必要があります。
Stableって古いって意味だっけ? -- Debian初級
教育者泣かせ (スコア:3, おもしろおかしい)
> コード中の多重ループの個所において、ループの順序を入れ替える
> ことによってメモリアクセスの高速化などが期待できるようだ。
「ね、こういう順序でアクセスするようにコード書かなきゃ遅くなるでしょ」
っていう実例見せて授業してる私の立場は?
Re: (スコア:1)
Re:教育者泣かせ (スコア:3, 興味深い)
組み込み系だと、本当にコンパイラのバグで最適化をすると動かなくなることが、
(PC上のプログラミングと比べると)結構発生します。
なので、
ではなく、「組み込み系だからこそ」かと。
まあ普通は、最適化オプションを切るよりは、
コンパイラのバグを避けるような記述に書き換えるんですが。
Re:教育者泣かせ (スコア:1, 興味深い)
> (PC上のプログラミングと比べると)結構発生します。
8-16bit時代には頻繁にあったのは事実だけど、それでもバグありコードが最適化を切るとたまたま動いていたということのほうが多かったと思うよ。
なので、なんでもかんでもコンパイラのせいにするの態度はどうかなあ。
Re:教育者泣かせ (スコア:1, 参考になる)
元コメの者ではありませんが具体例を挙げてみると、ルネサスの Mxx 利用のプロジェクトで、
C コンパイラが吐いた asm レベルで問題があったので、チーム内で参照する書いてはいけない
イディオム集とコードレビューで対応していました。
組み込みだと、怪しい振る舞いのコンパイラでも管理できるならそのまま使うので、
リビジョンアップもしないでプロジェクトを回すことは珍しくない。
なお、プロジェクト終わってから最新版に上げたら、修正されていたことは確認しました。