[過去ログ] GCは失敗。メモリは自分で管理せよ! その2©2ch.net (720レス)
上下前次1-新
抽出解除 レス栞
このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
83(1): デフォルトの名無しさん [sage] 2015/11/28(土) 20:47:03.48 ID:03HlMXbm(1) AAS
話は変わるんだがスマートポインタのメリットって何?
コンストラクタで例外投げたとき
そこまでに初期化したメンバ変数のデストラクタを呼ぶため
みたいなのは聞いたことあるけどそれくらいのもん?
305: デフォルトの名無しさん [sage] 2015/12/20(日) 12:21:54.48 ID:ofrSOHxv(2/7) AAS
つかこの世はうつろうもののであって、物理的ハードウェアでプログラムを実行する限り、
計算モデルは明らかに状態遷移ベース(チューリングマシン)の方に分がある
GCとかチューリングマシンで無理矢理関数型プログラミングを行うためのつなぎの技術、
いわば邪道
どんだけ蛇が出てくるか、GCの方がかえってわからん
309(1): デフォルトの名無しさん [sage] 2015/12/20(日) 14:28:20.48 ID:i39XsMQ2(1/5) AAS
>>308308(5): デフォルトの名無しさん [sage] 2015/12/20(日) 14:03:49.29 ID:ofrSOHxv(3/7) AAS
>>306
>>304の例で、さらにCを上書き更新したいオブジェクトDがいたらどうすんの?
GCがA、B両方開放してくれるまでDは期限不定で待たされるけどそれが>>306的に良い設計なの?
つまり、ハードウェアリソースの有限性を考慮する限り
>使い終わったという言葉が示す通り使い終わったならどうなろうが知った事ではない
が常に成立はしないという話
そんなあっちこっちから同時にリソース掴みに行く設計が悪いって最初からわかってて言ってるんだろ?
意見を否定するためだけの極端な反例(この場合は例にすらなっていないが)を引き合いに出すのは不毛だよ
317: デフォルトの名無しさん [sage] 2015/12/20(日) 14:55:30.48 ID:ofrSOHxv(7/7) AAS
ていうか>>316の言っていることはますます矛盾で、
>同時に書く設計が悪い
>そんな必要はないってわかる
というのは明白に「書き込みの順序を設計できる」ということを言っていて、
それはその通り(チューリングマシンの計算モデルに合致する)ので別段漏れの立場と対立するものではなく、
かつ気合を入れて設計すれば順序で全て解決する(GCは不要である)という言明でもある
320: デフォルトの名無しさん [sage] 2015/12/20(日) 17:05:42.48 ID:6vo8OCaj(1/3) AAS
>>319>>308を変な例変な例というばかりでGCを用いた正しい解決方法が一向に示されない件について:
繰り返しになるが、>>308のオブジェクトDのケースはどう解決すんのさ…
たとえ変でも反例は反例だし
>>308のリソースCがファイルなのだとしたら、病的な反例というほど例外的想定でもない
読み書き順序の設計の必要性(破壊的代入前提のプログラミング)を口にしつつ
>使い終わったという言葉が示す通り使い終わったならどうなろうが知った事ではない (>306)
と言い切ることはできないとかそういう話
で、現実のハードウェアは破壊的代入前提のブツばかりであるという、(>306)
>>318ウィンドウシステムでの描画は一般に裏VRAMに描いてハードウェアでBitBlt転送するが
裏VRAMに書く際のデバイスコンテキストが複数使えるが数に限りがある場合…
とか細かい話をしても通じないようならリソースCをファイルと考えてくんな
337: デフォルトの名無しさん [sage] 2015/12/21(月) 06:17:26.48 ID:ejqZ3DMD(9/26) AAS
残念だがスリープだ!
画像リンク
画像リンク
384: デフォルトの名無しさん [sage] 2016/02/13(土) 22:32:48.48 ID:6Xm9VASh(1) AAS
GCがある言語でRAIIみたいな事したいのなら
loan patten使えばいいだけでは
447(2): デフォルトの名無しさん [sage] 2016/03/28(月) 00:39:52.48 ID:2h3yopdG(1) AAS
{
std::shared_ptr<my_namespace::my_class> p(new my_namespace::my_class(...));
/* unko_code */
}
using(var obj = new MyClass(...)) {
/* GoodCode */
}
美しいという事はいい事だね
C#は書いてある事がシンタックス的にもセマンティック的にも明確だ
リソース管理はこうでなければならない
455(1): デフォルトの名無しさん [sage] 2016/04/12(火) 23:15:42.48 ID:ZWvwh7J9(1) AAS
Rust使えばいいのさ
508: デフォルトの名無しさん [sage] 2016/04/22(金) 15:49:44.48 ID:+Z1ZyILi(2/2) AAS
学校の先生にそう教わったんですね
657: デフォルトの名無しさん [sage] 2017/09/13(水) 08:52:01.48 ID:Vaq5SeW/(1) AAS
アロケータ置き換えるだけでは普通解決しないでしょ
>>655655(1): デフォルトの名無しさん [] 2017/09/13(水) 05:10:44.22 ID:t818hmCa(1) AAS
でも実際スマホアプリ作ってんのにフラグメンテーションを防ぐ為に最初に使用する分全部確保しておいて、その中で割り当てするんだーとかいって、オレオレアロケーター作ろうとする頭の悪いやつがいて困る。
逆にお前の作ったそのアロケーターの中でフラグメンテーションして枯渇するわと。
こそが置き換えて何するのか理解できてない気がする
上下前次1-新書関写板覧索設栞歴
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 0.045s