トップページ > プログラム > 2015年12月20日 > ofrSOHxv

書き込み順位&時間帯一覧

5 位/185 ID中時間01234567891011121314151617181920212223Total
書き込み数0000000000003050000000008



使用した名前一覧書き込んだスレッド一覧
デフォルトの名無しさん
GCは失敗。メモリは自分で管理せよ! その2©2ch.net
C++相談室 part121 [無断転載禁止]©2ch.net

書き込みレス一覧

GCは失敗。メモリは自分で管理せよ! その2©2ch.net
304 :デフォルトの名無しさん[sage]:2015/12/20(日) 12:13:23.36 ID:ofrSOHxv
>>303
オブジェクトの開放を他と独立にやれるケースばかりならそう言えるかもしれんが
オブジェクトAとBがリソースCに依存しているケースでA、Bの開放の少なくとも片方をGCに任せる場合、
リソースCの参照カウンタなりをつかった防護策をプログラマーが書かねばならない
しかしそんな嫌ったらしい雑用を増やすぐらいなら
 Cオープン
 A生成
 B生成
 A, B使用
 B開放
 A開放
 Cクローズ
でええやん?

さらにダンプファイルとかからの障害解析において、オブジェクトが生きているべきなのか死んでいるべきなのか決まっていないとか、
アドレスがはっきりしないとか言う状況は地獄
GCは失敗。メモリは自分で管理せよ! その2©2ch.net
305 :デフォルトの名無しさん[sage]:2015/12/20(日) 12:21:54.48 ID:ofrSOHxv
つかこの世はうつろうもののであって、物理的ハードウェアでプログラムを実行する限り、
計算モデルは明らかに状態遷移ベース(チューリングマシン)の方に分がある
GCとかチューリングマシンで無理矢理関数型プログラミングを行うためのつなぎの技術、
いわば邪道
どんだけ蛇が出てくるか、GCの方がかえってわからん
C++相談室 part121 [無断転載禁止]©2ch.net
300 :デフォルトの名無しさん[sage]:2015/12/20(日) 12:34:00.19 ID:ofrSOHxv
>>224
Fortranがきのこってるのは人力による最適化に適しているからであって
決してゆえなきことではない

逆に言うとFortranがきのこってるのはコンパイラによる最適化技術の追求をサボっている>>224が悪い
GCは失敗。メモリは自分で管理せよ! その2©2ch.net
308 :デフォルトの名無しさん[sage]:2015/12/20(日) 14:03:49.29 ID:ofrSOHxv
>>306
>>304の例で、さらにCを上書き更新したいオブジェクトDがいたらどうすんの?
GCがA、B両方開放してくれるまでDは期限不定で待たされるけどそれが>>306的に良い設計なの?

つまり、ハードウェアリソースの有限性を考慮する限り
>使い終わったという言葉が示す通り使い終わったならどうなろうが知った事ではない
が常に成立はしないという話
GCは失敗。メモリは自分で管理せよ! その2©2ch.net
311 :デフォルトの名無しさん[sage]:2015/12/20(日) 14:36:58.02 ID:ofrSOHxv
>>309
>そんなあっちこっちから同時にリソース掴みに行く設計が悪いって最初からわかってて言ってるんだろ?
極論なもんカヨ;
例: 表示デバイスの数>表示したいスレッドの数
というのはざらにある

で、>>308のオブジェクトDのケースはどう解決すんのさ…
GCが「いつ開放してくれるかわからない」ブツである以上解消しない問題だとおもうんだけど
(A、BにCのための明示的closeメソッドを付けるぐらいならGCに頼らずに順序管理するわ;
GCは失敗。メモリは自分で管理せよ! その2©2ch.net
312 :デフォルトの名無しさん[sage]:2015/12/20(日) 14:42:20.07 ID:ofrSOHxv
解決策の一つはActive ObjectパターンでリソースCの管理を1スレッドXにやらせて
Cに対する要求を全部Xのキューにシリアル化して入れさせるというのがあるが、それはそれで
リソースCを使う全てのオブジェクトがスレッドXに依存するから、Xの開放コードが面倒なことになりかねない
かつ、シリアル化はマルチコア時代のせっかくの並列実行性能を殺してしまう

GCに合わせて生きることは、神仙にでもならねば到底かなわぬ…
GCは失敗。メモリは自分で管理せよ! その2©2ch.net
315 :デフォルトの名無しさん[sage]:2015/12/20(日) 14:48:11.36 ID:ofrSOHxv
>>314
>その例じゃ308の状況にならないよ
なんで?ビデオメモリに2スレッドから同時に書いて無事に済むと思ってるの…;
GCは失敗。メモリは自分で管理せよ! その2©2ch.net
317 :デフォルトの名無しさん[sage]:2015/12/20(日) 14:55:30.48 ID:ofrSOHxv
ていうか>>316の言っていることはますます矛盾で、
>同時に書く設計が悪い
>そんな必要はないってわかる
というのは明白に「書き込みの順序を設計できる」ということを言っていて、
それはその通り(チューリングマシンの計算モデルに合致する)ので別段漏れの立場と対立するものではなく、
かつ気合を入れて設計すれば順序で全て解決する(GCは不要である)という言明でもある


※このページは、『2ちゃんねる』の書き込みを基に自動生成したものです。オリジナルはリンク先の2ちゃんねるの書き込みです。
※このサイトでオリジナルの書き込みについては対応できません。
※何か問題のある場合はメールをしてください。対応します。