[過去ログ] GCは失敗。メモリは自分で管理せよ! その2©2ch.net (720レス)
上下前次1-新
抽出解除 レス栞
このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
84(1): デフォルトの名無しさん [sage] 2015/11/28(土) 21:01:25.91 ID:DqKP/LxN(2/2) AAS
>>8383(1): デフォルトの名無しさん [sage] 2015/11/28(土) 20:47:03.48 ID:03HlMXbm(1) AAS
話は変わるんだがスマートポインタのメリットって何?
コンストラクタで例外投げたとき
そこまでに初期化したメンバ変数のデストラクタを呼ぶため
みたいなのは聞いたことあるけどそれくらいのもん?
別にコンストラクタじゃなくて関数内で確保した場合でも、
例外じゃなくreturnで戻った時も勝手に解放してくれたほうが
有り難いし、そもそも解放処理って忘れやすいものだろ
傘を置き忘れたり洗濯物を洗濯機に入れっぱなしにしたことの
ないものだけスマートポインタに石を投げなさい
102(1): デフォルトの名無しさん [sage] 2015/11/29(日) 16:46:22.91 ID:sCmmZzWu(3/3) AAS
>>100100(2): デフォルトの名無しさん [sage] 2015/11/29(日) 16:36:20.27 ID:Co3W2iFa(4/5) AAS
>>98
はあ?なんでリーク箇所ダンプするだけの話でログ全部吐き出すことになってんの
普通確保する際にヘッダにそのブロックの確保場所埋め込んでるし
アロケータで生存期間のスコープを切り分けといてすぐ分かるようにするけど?
お前の関わったプロジェクトが糞なだけじゃね?
はぁ。話にならんな。扱ってる規模が違いすぎる。
127: デフォルトの名無しさん [sage] 2015/12/01(火) 01:24:29.91 ID:mVPa8mQr(1/3) AAS
GCが云々というより抽象的なプログラミングしたい時は基本的なメモリ管理を言語に任せたいという欲求
138: デフォルトの名無しさん [sage] 2015/12/03(木) 14:07:05.91 ID:n26CULk9(2/3) AAS
低レベルなことを舐めるなよ
158(3): デフォルトの名無しさん [sage] 2015/12/05(土) 04:01:37.91 ID:2vAbbe+i(1/2) AAS
>>154154(2): デフォルトの名無しさん [] 2015/12/04(金) 20:05:33.81 ID:SAJ9n/s7(1) AAS
>>137これって何が言いたいの?OSやライブラリ自体にミスがあるって言いたいの?
wikiより
>メモリリーク (Memory leak) とは、プログラミングにおけるバグの一種。
>プログラムが確保したメモリの一部、または全部を解放するのを忘れ、確保したままになってしまうことを言う。
>プログラマによる単純なミスやプログラムの論理的欠陥によって発生することが多い。
>>137みたいなこと言う奴って、電磁波からデータが盗まれる!対応しないと!とか言い出すタイプ?
入門書に書いてるコードしか見たことないんだね。
スレッドプールみたいなテクニックは高速化のためにみな普通に使うんだよ。
OSやライブラリにもメモリリークなんてよくあることだし、それらのバグも開放忘れて起きてるイージーなバグじゃないよ。
他のバグやトラブルがメモリリークという形で表面化してるにすぎない。
165: デフォルトの名無しさん [sage] 2015/12/05(土) 13:11:12.91 ID:eGerJrSR(3/5) AAS
つまり、完璧なGCは無いということだ
完璧なGCが無い以上、使う側が状況に合わせて選べた方が良いわけだが
そうなるとC++/CLIのような変体言語しかないのが残念だ
222(1): デフォルトの名無しさん [sage] 2015/12/06(日) 22:27:08.91 ID:RyqEmv/A(3/3) AAS
>>218218(1): デフォルトの名無しさん [sage] 2015/12/06(日) 20:58:14.61 ID:wxELMJDc(2/2) AAS
>>217
それはStringの+=の実装次第ではあんまり差が付かないケースなんじゃ…
(左辺と右辺が別の実体である(アドレスが違う)ケースでは多分右辺を左辺の末尾に1回コピーするだけという実装が有り得る
真に糞なのは
StringBuilder sb;
String s = "Hello";
sb.Append("[" + s + "]");
が遅いからStringBuilderは糞、と結論付けるニンゲンであってコードではない、
みたいな?
??、これJavaだぞ。演算子オーバーロードなんて出来ないから
>>219219(2): デフォルトの名無しさん [sage] 2015/12/06(日) 21:26:17.35 ID:IAFYzi6n(1/2) AAS
>>217みたいにループ中で一個づつくっつける場合は別にして
s = a + b + c + d; // このように、高々数個をくっつけてる場合は
Javaだと無駄にStringBufferが作られてダメと言うのが定説だったが
C#の場合は内部的にString#Concatに置き換えられて
それによって
StringBuilder b = 略
s = a.Append(b)中略.Append(d).ToString()
するより早い、という話題があってそれと勘違いしたのかもね
違う違う。+の連結がStringじゃなくてStringBufferに
最適化されるらしいって話だけで、StringBulderって
必要ないでしょ?レガプロ?(笑)、って認識レベル
しかもそいつ一人ならまだしもスレに同じレベルの
認識の奴結構多かったよ。レベルの低さ舐めたらあかんで
379: デフォルトの名無しさん [sage] 2016/02/10(水) 21:00:45.91 ID:ZQ/yQmxu(1) AAS
簡単だよ
スレッド立ててGCをフルサイクル実行し続けるだけ
475(1): デフォルトの名無しさん [sage] 2016/04/18(月) 17:47:00.91 ID:IBBVu28x(1/4) AAS
ゲーム専用機でフラグメンテーションおこすとか開発者としての適性を疑われても不思議ではない。
オブジェクトの寿命管理すらしないのか?
595(1): デフォルトの名無しさん [sage] 2016/11/14(月) 23:45:18.91 ID:JD+cxKWX(1) AAS
例えばChromeとかFirefoxとかが静的にメモリアロケートしてたらどうなるか
716: デフォルトの名無しさん [sage] 2023/02/08(水) 15:30:25.91 ID:MLBtrq1u(1) AAS
やはりGCは必要だった
WebAssemblyにガベージコレクション機能が登場、Chrome 111で試験的実装に。Dartなど高級言語のWebAssembly対応へ前進
外部リンク[html]:www.publickey1.jp
上下前次1-新書関写板覧索設栞歴
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 0.031s