- 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は不要である)という言明でもある
|