mallocの後にfree不要と言うバカいるの?Part2

このエントリーをはてなブックマークに追加
578デフォルトの名無しさん:2014/12/06(土) 14:49:24.53 ID:ui+tbMEF
自動化ないしは意識せずにできるようにするのはな。
プログラマ自身がしこしこやるのがいったいどこのトレンドだよw
579デフォルトの名無しさん:2014/12/06(土) 15:42:19.80 ID:dmb0kXdE
そういうやつは、スレチだがgcつかっとけよもう
580デフォルトの名無しさん:2014/12/06(土) 18:25:26.31 ID:dOSwxHPK
cpやword2vecを書くようなプログラマと
その辺で業務システム書いてるドカタを
同じ土俵で論じるのが間違い
581574:2014/12/06(土) 19:13:16.22 ID:Khx/zTiJ
>>576

>> 不要になった時点で破棄

まさしくそれ、
不要になったと判明した時点で速やかに破棄というのが大前提。

free絶対派はその意識が乏しいんじゃないかと。
なんとなくmallocとfreeは対でなければいけないから漫然と
freeしているだけなんじゃないかと。

上記のJaneの例なら
画像を破棄したらその画像で使用した領域はその時点でfree
スレッドを破棄したら、それに使った領域はその時点でfree

word2vecは入力した文書の統計情報は最後まで利用する
--> 破棄されることがないので、freeする必要がない
582デフォルトの名無しさん:2014/12/06(土) 19:41:46.07 ID:ui+tbMEF
それ「最後まで利用」じゃなくて、利用終了時点の判断をネグってるだけ。
583デフォルトの名無しさん:2014/12/06(土) 19:46:54.04 ID:ADt2fRJM
プロセスが確保したメモリは、プロセスを終了させても解放されず、
解放するにはコンピュータの再起動が必要となるOSが昔あったなあ。
バグではなく、OSの正規の仕様として。OSの名前忘れたけど。

そんな仕様じゃメモリをいくら積んでも足りないし、連続稼動できないじゃん!

・・・という各方面からの否定的な評価に対し、そのOSの設計者は
「メモリを十分に積まないのが問題」「定期的にリブートすればいいこと」
「メモリ資源の再利用をOSに任せようとするアプリケーション開発者の手抜き」
のようにOS側の問題ではないと一蹴してて、その主張に一理あるということで、
当時はちょっと衝撃を受けたわ。

malloc したものを free することには合理性があるけど。
その価値観に対抗するようなOS設計哲学も存在するということで。
何が正しいのか、唯一の結論を出すのは、なかなか難しいかもねえ(^o^)ノ
584デフォルトの名無しさん:2014/12/06(土) 20:01:10.98 ID:5oGFUyw+
UnixのSIGKILLみたいに問答無用でプロセスが殺されたりせずに、後始末の作業が
できることがシステム全体として保証されてるなら通る理屈だけど、どうせそのような
仕掛けがあるわけじゃないだろうなw
585デフォルトの名無しさん:2014/12/06(土) 22:06:14.90 ID:Iv1q4dyj
>>581
だからさぁ・・・それをfree不要とは言わないでしょ。
freeしない領域も実質プログラムの終了でfreeを代用してるだけだし、
プログラマの意図としてはfreeすべき場所を把握できているケース。
このスレはfreeも満足に使えないくせにfree不要とか言っちゃう馬鹿を断罪するスレなんだよ。

なんでそこまでして「free不要論は間違い」をfree必須教みたいに扱って敵視してんの?
発端のfree不要とか言っちゃった馬鹿が知恵つけながら粘ってるようでヤなんだけど。

>>584
そこまで行くとkillするAPIも無いとかkillする側が責任持つべきとかになるんじゃね。
586デフォルトの名無しさん:2014/12/06(土) 22:10:57.01 ID:jRYa77lH
プログラムの最初から最後まで領域を優先するようなメモリはStatic使うべし。
MallocはFreeされるべき。
587デフォルトの名無しさん:2014/12/06(土) 22:51:56.38 ID:dmb0kXdE
途中でfreeしてメモリを効率よく使えるようmallocするんじゃないんかと…
588デフォルトの名無しさん:2014/12/06(土) 23:09:29.33 ID:jRYa77lH
Malloc自体は遅いんだよ。
Freeしなかったら蓄積してって確保できなくなるぞ。
まぁ、最近のコンピュータで困るかはわからん。
589デフォルトの名無しさん:2014/12/06(土) 23:29:03.74 ID:5oGFUyw+
GCを前提としたmallocだと、極端な奴ではポインタずらして管理情報をちょこっと書くだけ、
って場合もあるけどなw
590デフォルトの名無しさん:2014/12/06(土) 23:32:11.16 ID:jRYa77lH
なにそのオレオレライブラリ。
591デフォルトの名無しさん:2014/12/07(日) 00:10:44.64 ID:T0oVgQBw
mallocしたメモリをGCしてくれるわけねーだろw

そういうやつはC++ならせめてgcnewくらい使え
592デフォルトの名無しさん:2014/12/07(日) 05:38:55.41 ID:LVeISVsO
これが fopen() / fclose()、低水準なら open()/close() の話だったりすると、
プロセス終了時にオープンされているものは OS がクローズしてくれるものにもかかわらず、
「プログラム終了時の fclose() を省略しないやつは糞」というのはあまりきかないね…
ま 10万20万と fopen() するわけではないからね…
593デフォルトの名無しさん:2014/12/07(日) 09:22:07.16 ID:T0oVgQBw
つーか、終了時のメモリ開放処理程度をめんどくさいとか言うやつは
もうプログラマなんか向いてねーからやめちまえよ
594デフォルトの名無しさん:2014/12/07(日) 09:40:05.22 ID:r6DD4JyZ
>>593
プログラマがめんどくさいだけならいいけど、
ユーザーが遅さを体感することになるからな
ユーザビリティの観点からもプロセス終了時の明示的メモリ解放はやめるべきだ
595デフォルトの名無しさん:2014/12/07(日) 09:50:23.92 ID:SIYxuRDn
>>592
「俺はmallocとfreeを使える」って所で学習が止まってしまっていて、そこまで到達したことだけが
心の支え、というオワコンプログラマが多いのさ。
596デフォルトの名無しさん:2014/12/07(日) 10:04:52.37 ID:ekuZw6uY
最近のシステムではないと思うけど、ファイルの場合は排他ロックしたらシェルから見てデッドロックしたりするので解放しないという選択肢はないはず。
597デフォルトの名無しさん:2014/12/07(日) 10:13:48.44 ID:RIZYWRwW
昔はOSの設計上、同時に開けるファイルハンドル数に厳しい制限があった
今はほぼ制限なしに等しくプロセス外にまで支障をきたすほどたくさんファイルを開くシステムも稀
プロセス間で同じファイルを扱うケースも実際には少ない
598デフォルトの名無しさん:2014/12/07(日) 10:45:17.82 ID:mrRmmrII
たしかに MS-DOS でも1プロセス20までだったか、プロセスメモリマップにもそういうテーブルがあったね
599デフォルトの名無しさん:2014/12/07(日) 10:52:54.31 ID:mrRmmrII
>>595
たしかに、きっちり malloc() と free() を対応させる技術がなく、当然必要がなくなった時点でさっさと free() することもできない、したがって free() しなくともよい判断は到底不可能という、頭の可哀相な >>558 もいることだし
600デフォルトの名無しさん:2014/12/07(日) 11:05:32.98 ID:SIYxuRDn
ファイルロックの方法によるのにあっさり決めつけてしまってるあたりが、
全くわかってないことを露呈していて趣き深い。
601デフォルトの名無しさん:2014/12/07(日) 13:04:46.31 ID:UwBbHZ64
ちょっとしたgcぐらい、自分で作れよ
gcnew?知るかそんなの
602デフォルトの名無しさん:2014/12/08(月) 10:37:40.97 ID:SJ/ip5mJ
日本主記憶解放戦線。
603デフォルトの名無しさん:2014/12/08(月) 17:49:26.49 ID:3czqE9B9
>>602
こまめにmallocしまくって自滅フラグw
604デフォルトの名無しさん:2014/12/08(月) 18:30:17.91 ID:SJ/ip5mJ
我々はすべての主記憶を解放するまで戦い続ける。

解放すると遅い。
それは設計あるいは使用範囲が間違っているのである。

適宜開放することにより、誤りに気付く機会が与えられる。
すなわち、確保した記憶域は必ず解放されねばならない。

(主記憶解放戦線憲章より引用)
605デフォルトの名無しさん:2014/12/08(月) 19:03:22.56 ID:WiG9aNiK
ムダにかっこいい系
606デフォルトの名無しさん:2014/12/08(月) 22:23:08.00 ID:m6wBRCkx
>>603
こまめに free() することにどんな自滅パターンがあるというのか?お前も頭の可哀相な >>558 の同類か?
607デフォルトの名無しさん:2014/12/09(火) 08:32:16.30 ID:LA65v/8c
>>593
終了時の開放は別に無くても良いと思う。

勿論反復ルーチンでは都度開放しないといずれ枯渇するから開放は当然。
GC無くても如何なる場合も開放不要、みたいな意見には賛成できない。

要はケースバイケース
608デフォルトの名無しさん:2014/12/09(火) 12:52:12.55 ID:i9BKJ0vK
>>607
貴様は己の能力を過信しすぎている。

必ず解放しろ。
いいな、これは命令だ。
609 ◆QZaw55cn4c :2014/12/09(火) 21:46:06.18 ID:jdnBb/7K
信者召喚ww
610デフォルトの名無しさん:2014/12/09(火) 23:34:43.57 ID:i9BKJ0vK
計算指示書作成手順において、記憶域解放が省略されてはならない。

それは省略ではなく手抜きである。

少々の手抜きが計算指示全体に悪影響を及ぼすことがある。
心して作成せよ。
611デフォルトの名無しさん:2014/12/10(水) 00:33:13.98 ID:Deu5ogie
サッカースタジアムは、
客がはけた後には必ず掃除されるんだから、
サポーターがゴミ拾いをする必要はない。
612デフォルトの名無しさん:2014/12/10(水) 00:37:51.16 ID:8C/H0+A2
しかし同じ日に繰り返し何試合もやったら次第に人のいる場所がなくなるだろ
613デフォルトの名無しさん:2014/12/10(水) 06:13:48.75 ID:115BiRn2
>>ID:i9BKJ0vK
はっはー。サタンサマー。
614デフォルトの名無しさん:2014/12/13(土) 00:20:32.42 ID:pBf+dW7w
組込ソフトウェアでfreeしなかったら、起動してネットワーク接続したら3分と持たずにフリーズするかメモリ枯渇エラーのログ吐きまくるわ
615デフォルトの名無しさん:2014/12/15(月) 15:05:28.38 ID:ZETjn4CW
俺の知っている、という枕詞が省略されている典型例やな
616デフォルトの名無しさん:2014/12/27(土) 16:11:44.99 ID:9Rxt26Ql
free要る派
→自分でしたうんこは自分で流す派

free要らない派
→うんこしたけど、この便所二度と来ることないから俺シラネ
便所の管理人が勝手に掃除してくれるんじゃね?

と考えると、俺は断然free要る派となる
617デフォルトの名無しさん:2014/12/29(月) 20:47:20.01 ID:KuYXSH39
>>616
流すまでその便所は他の人が使えないわけだが、管理人が来ないまま使える空き便所が無尽蔵にあるという前提が必要だな
618デフォルトの名無しさん:2014/12/29(月) 20:53:22.95 ID:/sLHpawi
それが無尽蔵にないからswap地獄に陥るんじゃないか。
619デフォルトの名無しさん:2014/12/29(月) 21:06:56.82 ID:KuYXSH39
管理人がやって来る明確な規則がイマイチわからなくて気持ち悪い
620デフォルトの名無しさん:2014/12/29(月) 21:14:34.42 ID:bj0t/8Ju
大抵は「管理人仕事しろボタン」があるだろ
621デフォルトの名無しさん:2015/02/06(金) 01:41:27.81 ID:b3gwE4qm
>>553
>信者信者言うのは
自称だと思うよ
絶対というわけではなく細かい点で要不要が議論されることはあるからね
622デフォルトの名無しさん:2015/02/21(土) 23:49:31.87 ID:mk77xCMU
623デフォルトの名無しさん:2015/02/22(日) 21:10:43.75 ID:XKkbsrmM
>>622
懐かしい、あれから 15年かぁ
624デフォルトの名無しさん:2015/02/24(火) 00:46:11.63 ID:oRO5M8st
けっこう最近(?)の話なんだ‥面子的に1990年〜1995年くらいかと思っていた
625デフォルトの名無しさん:2015/02/24(火) 00:57:46.90 ID:zk/7dheO
>>624
Qちゃんfjに参加してたの?
QちゃんC/C++宿題スレで勉強始めたような28才くらいの若者かと思ってたけど(煽り抜き)
意外と古くからML読んでたりしてたの?
おどろき
626デフォルトの名無しさん:2015/02/24(火) 01:14:22.05 ID:oRO5M8st
>>625
>C/C++宿題スレで勉強始めたような
この部分は当たり他ははずれ
もう7, 8年くらいにはなるな‥
成長が遅いのは頭が悪いせいから仕方がない
627デフォルトの名無しさん
15年経っても同じような屁理屈をこねる者がいるというのは感慨深い