- ふらっと C#,C♯,C#(初心者用) Part112
866 :デフォルトの名無しさん[sage]:2014/10/13(月) 09:29:07.93 ID:HMQ6z8sD - T[,]も低次元側は連続しているから変わらんだろう。
|
- ふらっと C#,C♯,C#(初心者用) Part112
868 :デフォルトの名無しさん[sage]:2014/10/13(月) 10:16:24.69 ID:HMQ6z8sD - 高次元側がループ内で不変なら原理的には一次元アクセスと変わらんはずだが、
具体的にどういう最適化の違いがあるの?
|
- ふらっと C#,C♯,C#(初心者用) Part112
870 :デフォルトの名無しさん[sage]:2014/10/13(月) 10:40:03.21 ID:HMQ6z8sD - なるほど、実際に数十%も差が出るんだな。
http://schima.hatenablog.com/entry/20091118/1258518836
|
- mallocの後にfree不要と言うバカいるの?Part2
408 :デフォルトの名無しさん[sage]:2014/10/13(月) 12:27:56.27 ID:HMQ6z8sD - >>403
「常に」じゃないとすると、どういう基準で要る要らないを判断するのかという話に なるわけだけど、「exit()の直前は要らない、それ以外は要る」でいいんだっけ?
|
- mallocの後にfree不要と言うバカいるの?Part2
413 :デフォルトの名無しさん[sage]:2014/10/13(月) 13:03:24.91 ID:HMQ6z8sD - >>410
空きを作りたいときに破棄できるポインタが常に手元にあるわけじゃないだろうし。 まさかそこでまとめてfreeするために、freeせずに取っておいたポインタを渡すというのも 本末転倒だろうし。 それ以前にそもそも、コードのこの部分を実行するときは空きが必要だがこの部分では 必要ないと判断するのも大変そうだなぁ。さらに、必要なときに空きを作れるようにするには 結局freeするコードは記述しておかなくちゃならんわけだよね。
|
- mallocの後にfree不要と言うバカいるの?Part2
416 :デフォルトの名無しさん[sage]:2014/10/13(月) 13:30:14.38 ID:HMQ6z8sD - 要は、一貫したルールはないけど好きなようにやらせろと。まぁ、それは自由だな。
|
- mallocの後にfree不要と言うバカいるの?Part2
420 :デフォルトの名無しさん[sage]:2014/10/13(月) 13:57:39.07 ID:HMQ6z8sD - >>417
「若者には間違いを犯す権利がある」 胸熱だな。
|
- mallocの後にfree不要と言うバカいるの?Part2
438 :デフォルトの名無しさん[sage]:2014/10/13(月) 17:13:00.13 ID:HMQ6z8sD - >>432
その判断は大域的にならざるを得ないわけだよな。 個々の処理がいつどのように呼ばれるか、さらにはそれより後で実行される処理で 新たなヒープメモリの確保がされるのか、等々、気にしないとならないわけだ。 なんとも前近代的な印象を受けるが。
|
- mallocの後にfree不要と言うバカいるの?Part2
467 :デフォルトの名無しさん[sage]:2014/10/13(月) 19:44:39.36 ID:HMQ6z8sD - >本質的に記憶領域の再利用がされないfreeをするために
>循環参照があるリンクトリストを再帰で開放してまわったり >freeをするための1万回のループをわざわざ書くというのは >なんというか、知的ではないのではないかと リスト要素の構築と破棄を一回書けばそれが何万回呼ばれようと 同じだと思うんだが、それを「わざわざ」と言うのはどういうスタイルで 書いてんのか気になるな。 循環参照とか言っているところを見ると、fjのときも出てきたような 「作った本人が正しく破棄することができないデータ構造」とかかねぇ。
|
- mallocの後にfree不要と言うバカいるの?Part2
477 :デフォルトの名無しさん[sage]:2014/10/13(月) 21:09:16.45 ID:HMQ6z8sD - >>472
前者は、参照の所有権をちゃんと考えないで複雑なデータ構造を作っちゃうと いざ壊そうと思ったときに嵌ったりバグったりする典型だね。 後者は、使い捨てのやっつけプログラムとかじゃなければ普通こんなコードが exit()の直前に置かれることはないと思うし、そうであれば普通に破棄処理として 書くと思うんだけどなぁ。それを「わざわざ」と思うのはまぁ、個人の感覚かも知れんが。 #あぁ、rowもグローバル変数だったりするのかね?
|