[過去ログ] GCは失敗。メモリは自分で管理せよ! その2©2ch.net (720レス)
上下前次1-新
このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
6: デフォルトの名無しさん [] 2015/11/19(木) 08:58:13.78 ID:JIJtk7D/(1) AAS
ブラッド・コックスとトム・ラブがObjective-Cを作り「この言語はCのメモリ安全性とSmalltalkの高速性を合わせたものだ」と宣言する。
現代の歴史家は2人が失読症ではないかと疑っている。
Twitterリンク:okdshin
7: デフォルトの名無しさん [sage] 2015/11/19(木) 23:17:01.16 ID:SYMznuBH(1/2) AAS
519 :名無し~3.EXE:2015/11/19(木) 21:49:08.84 ID:CEKgHuEl
他のアプリを使用しながらSleipnirを使う
メモリー不足でのメッセージは良心的
画像リンク
問題点として、場合によってはメモリー不足で
メッセージされずに展開されなくなる
Sleipnirが不安定で信頼感を得られない要因
520 :名無し~3.EXE:2015/11/19(木) 21:51:47.06 ID:CEKgHuEl
6で書き込み欄が展開されなくなった・・・再起動してカキコした
521 :名無し~3.EXE:2015/11/19(木) 21:52:39.96 ID:CEKgHuEl
◆重要◆Sleipnirが不安定で信頼感を得られない要因
8: デフォルトの名無しさん [sage] 2015/11/19(木) 23:18:18.19 ID:SYMznuBH(2/2) AAS
525 :名無し~3.EXE:2015/11/19(木) 22:13:05.49 ID:CEKgHuEl
展開されない時
リロードで展開される場合もあるが
リロードで展開ない場合もある
9(1): デフォルトの名無しさん [sage] 2015/11/20(金) 09:27:53.75 ID:em+ldceb(1) AAS
メモリ管理は自分でやった方が漏れが出るでしょ
規模がでかくなればなるほどリスクが大きくなる
10(2): デフォルトの名無しさん [] 2015/11/20(金) 15:32:07.18 ID:hg0nWx/i(1) AAS
C#の基本は自動だけど部分的に手動にできるハイブリッドがいいと思うよ
確保量の大きい画像なんかを扱っているとどうしても手動で解放したいタイミングもあるし
11: uy ◆Qawu9.2l1E [sage] 2015/11/20(金) 20:28:57.10 ID:QlSu2hgW(1) AAS
まともな言語ならオプションくらいついてる
12(1): デフォルトの名無しさん [sage] 2015/11/20(金) 22:40:56.83 ID:h5Le2W6O(1) AAS
>>10
それが理想的だけど、C#ってそんなことできたっけ?
13: デフォルトの名無しさん [sage] 2015/11/21(土) 09:07:54.65 ID:+qGvO8oq(1) AAS
>>12
出来るよ。
ポインタも使える
14: デフォルトの名無しさん [sage] 2015/11/21(土) 10:29:39.51 ID:7nxNhgSu(1/2) AAS
調べてみたけどよくわからんな。
もしかしてアンマネージなメモリを確保してデータ領域に使う話?
15: デフォルトの名無しさん [] 2015/11/21(土) 16:16:49.90 ID:iOucF00Z(1/2) AAS
アンwwwwマネージwwww
無理に横文字使わなくていいですよwww
16(1): デフォルトの名無しさん [sage] 2015/11/21(土) 17:40:45.99 ID:7nxNhgSu(2/2) AAS
横文字じゃなくてマイクロソフトの用語なんだが?
17: デフォルトの名無しさん [sage] 2015/11/21(土) 17:47:25.64 ID:/uyrLxeD(1) AAS
c#が残念なんのはC++とデストラクタの呼ぶれるタイミングが違いすぎて移行が大変すぎることだ。
結局、手動でデストラクタを呼ばなきゃならない。GCの利便性がほとんどなし。
18: デフォルトの名無しさん [] 2015/11/21(土) 19:18:42.53 ID:iOucF00Z(2/2) AAS
>>16
涙ふけよwwww
19: デフォルトの名無しさん [] 2015/11/21(土) 21:36:26.09 ID:tqUpuiXF(1) AAS
>>9
自動ならメモリリーク等々発生するわけがないのに発生している
この原因はプログラマなんだけど、結局メモリ管理から解放されてないなら最初から管理する方針でいいじゃん
20(1): デフォルトの名無しさん [] 2015/11/22(日) 01:48:28.16 ID:7AflF1fM(1) AAS
メモリ管理を楽にするためにあるわけで人間が全部面倒みんのとは違うだろ
21: デフォルトの名無しさん [] 2015/11/22(日) 04:41:20.06 ID:WFE6EpHf(1/2) AAS
やっぱりGCのほうがいいかな大規模になってくると
Cでリークはしてないけど本来開放すべきタイミングで開放してないでメモリいっぱいになるのは防ぎやすいと思うし
22: デフォルトの名無しさん [] 2015/11/22(日) 07:04:28.69 ID:MUaNGGyB(1/2) AAS
>>20
楽になってメモリリークがなくなるならいいけど、メモリリーク発生するわ
プログラマがメモリ管理なんてしなくて大丈夫、とメモリの扱いが雑になって意図しないタイミングで解放されたりされなかったり
最初から管理するという方針で教えないから、こんなことになる
管理漏れをGCがうまいことやってくれる。でもGCにやらせるようだと恥。
というくらいで教育すべき
23: デフォルトの名無しさん [] 2015/11/22(日) 07:12:51.89 ID:MUaNGGyB(2/2) AAS
メモリ管理すらまともにできないやつが寿命や世代やら管理できるわけがない。
24: デフォルトの名無しさん [sage] 2015/11/22(日) 10:54:50.51 ID:MJCWCZ10(1) AAS
GCそのものではなく新人教育や解説書が最初のスタンス間違えたんだよ。
GC=メモリ管理適当
という認識作ったから、GCに新しい名称つけて
教育や解説書では、メモリーの確保から解放まできちっと説明し直したほうがいい
25(1): デフォルトの名無しさん [sage] 2015/11/22(日) 12:31:51.68 ID:Qlq25ltW(1) AAS
GCって完全なものだと思ってたから、C#案件でメモリリークの調査にえらく手間がかかった
GCはダメな子って認識は必要だな
26: デフォルトの名無しさん [sage] 2015/11/22(日) 12:38:37.22 ID:mfzN9aoV(1) AAS
C/C++はライブラリレベルでメモリリリークの検査もテストも書けるけど
GC前提言語だとその辺がごっそり抜け落ちて後で問題になる
27: デフォルトの名無しさん [sage] 2015/11/22(日) 12:42:49.74 ID:zNwKjU3u(1) AAS
メモリ管理できない人がお気楽で作れば、GCあっても・・・・
28: デフォルトの名無しさん [sage] 2015/11/22(日) 13:08:14.89 ID:KDgQ57Ye(1) AAS
>>25
結局どんなバグだったんだい?
29: デフォルトの名無しさん [sage] 2015/11/22(日) 16:57:06.63 ID:vggKhYqJ(1/2) AAS
C++でもスマートポインタ使えば勝手に開放されるよ
所謂GC任せだと、いつ開放処理が走るか分らなくなるから
その事に対する新たな対策が必要になるよ
外部リンク[html]:ufcpp.net
手続き型言語は処理の順番が重要なのに
いつ実行されるか分からないってのは中々チャレンジャーだし大掛かりな話だね
30(1): デフォルトの名無しさん [sage] 2015/11/22(日) 17:32:48.70 ID:vggKhYqJ(2/2) AAS
前スレでも書いたけど、C#のDisposeの問題を紹介しよう
IDisposableなオブジェクトをコンポジションしてメンバに持つと自身もIDisposableにしなければならない
だから自分がコンポジションしているオブジェクトがIDisposableかどうか一々調べなければならないし
IDisposableなオブジェクトがメンバにあれば、自身もIDisposableにしなければならない
さらに、その作ったクラスをコンポジションして使うクラスもIDisposableにする必要があり・・・
という風にIDisposableはクラスで閉じずコンポジションで伝染する
というか、むしろ手動で伝染させなければならないという
しかもIDisposableの一連のイディオムはとても長くて煩雑
外部リンク[html]:ufcpp.net
こういうものを書いて、マネッジドリソースとアンマネッジドリソースで場合わけをしつつ
IDisposableなオブジェクトに関しては
手動で自分のメンバのDisposeを漏れなく呼び出すコードを書かなければならない
当たり前だが、どのメンバがIDisposableか完全に把握しておく必要が有る
手動で自分のメンバのDisposeを呼び出す作業は、まるでCのmallocを思い起こさせる
問題点は明確で、DisposeがC++のデストラクタのように芋づる式に勝手に呼ばれない事に有る
だから手動で芋づる式に呼び出すコードを書かなくてはならない
上下前次1-新書関写板覧索設栞歴
あと 690 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 1.362s*