[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 2ch.scのread.cgiへ]
Update time : 02/26 16:42 / Filesize : 210 KB / Number-of Response : 738
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

GCは失敗。メモリは自分で管理せよ! その2



1 名前:デフォルトの名無しさん mailto:sageteoff [2015/11/18(水) 23:24:59.79 ID:BUQ68wTG.net]
GC、ガベージコレクション、ガベージコレクタ、ガーベジコレクション、ガーベジコレクタは使えない。
以下GCと記す

プログラマをメモリ管理から開放する!
といいつつ、メモリリーク問題の文献が大量にある。
これすなわち、メモリリーク問題が全然解決していないということ。
さらに、メモリ解放のタイミングの文献まで大量に生み出した。
これすなわち、新たなるメモリ管理に関する問題を生み出したということ。

malloc、freeじゃないが
結局のところ、メモリを管理するという技術は、今しばらくは、身につける・教える・学ぶべきではないだろうか?
使って、そのまま放置しても、基本的にはGCがなんとかしてくれている。
ランジョブからジョブ終了までさほどの時間を要さない。メモリも大して使わないならいいだろう。
しかし、規模が大きくなり常駐ジョブやメモリ大量使用のジョブになってくると、そんなメモリ管理の方法でやっていると、
上記「文献」を生み出されてしまう。

入門時は、メモリに無頓着でもいいだろう。それよりも、目的を達成することが先決だ。
しかし、慣れてきたら、やはりメモリの管理まで余裕を持って自分で行うべきだろう。

前スレ
GCは失敗。メモリは自分で管理せよ!
peace.2ch.net/test/read.cgi/tech/1412986420/

57 名前:デフォルトの名無しさん mailto:sage [2015/11/24(火) 16:39:45.81 ID:1SleeXaD.net]
せっかくC#は新設計なのにいろいろ失敗が含まれてるよな。

ヘジはなにやってんだか。

58 名前:uy ◆Qawu9.2l1E mailto:sage [2015/11/24(火) 18:29:34.50 ID:lNjW2jss.net]
大企業は、
中小企業を奴隷にさせる事を第一に考えたツールしかリリースしてないよ
失敗ではなく全部わざと。

59 名前:デフォルトの名無しさん mailto:sage [2015/11/25(水) 07:39:30.16 ID:JnM8vxaH.net]
メモリ管理テケトーなやつはその他のリソース管理もテケトー

60 名前:デフォルトの名無しさん mailto:sage [2015/11/25(水) 17:12:00.25 ID:Sra0FKsR.net]
そもそも自分のリソース管理がしっかり出来てる人は・・・

61 名前:デフォルトの名無しさん mailto:sage [2015/11/27(金) 12:24:34.85 ID:ZRdaHx9T.net]
>>31
Formはnull入れてあげないといけないんだっけ?

なんか、場合場合によってnull入れてあげないといけなかったり入れなくてもよかったり。
ならnull入れるで統一でいいじゃんと思った

62 名前:デフォルトの名無しさん mailto:sage [2015/11/27(金) 22:35:05.80 ID:CyIO1ZuX.net]
Rust使えば解決

63 名前:デフォルトの名無しさん [2015/11/28(土) 06:44:39.29 ID:CKvy7+My.net]
中の細かい実装まで知らないんだけど、
A = new A()
Loop Begin
  処理
  A = null
  A = new A()
Loop End
とか、nullをセットをGCって見張ってるの?又はGCに伝えているとかあるの?

64 名前:デフォルトの名無しさん mailto:sage [2015/11/28(土) 13:02:34.51 ID:Qyl/1Ad+.net]
違うよ
newが動いた時点で中の人がメモリが足りない!って騒いで初めてGCさんお願いします!GC「やれやれ・・・
っていう仕組みなんで
>>62の例のnullの代入は無駄

65 名前:デフォルトの名無しさん mailto:sage [2015/11/28(土) 13:08:02.55 ID:Qyl/1Ad+.net]
いや無駄じゃないか
代入演算子の順序の関係でnewの後に代入が起こるから
Aを事前にnullすることでGCさんが回収できるオブジェクトが1個増える



66 名前:デフォルトの名無しさん mailto:sage [2015/11/28(土) 13:10:10.16 ID:rTI66XO9.net]
書いたほうが保守性は高く、意味がある。

67 名前:デフォルトの名無しさん [2015/11/28(土) 13:34:46.98 ID:CKvy7+My.net]
>>64
つまり、使い終わったら、スグにnullっておいたほうがいいってことか。
・・・とも言い切れないな。

でも、ここで使い終わったってわかるから、書いたほうがいいか。
よし。決めた。全部書こう。

68 名前:デフォルトの名無しさん mailto:sage [2015/11/28(土) 13:55:47.33 ID:pohBt4lh.net]
null代入なんていちいち書いていたら
コードが冗長になって保守性が落ちる。

メモリ食いのオブジェクトなど、クリティカルな部分でのみ使うべき

69 名前:デフォルトの名無しさん mailto:sage [2015/11/28(土) 14:16:02.55 ID:81goelDj.net]
お前らか。無意味なnull代入書き散らしてるのは

70 名前:デフォルトの名無しさん mailto:sage [2015/11/28(土) 14:42:43.95 ID:DqKP/LxN.net]
null代入とか結局やってることc++以下なんだよなぁ

71 名前:デフォルトの名無しさん mailto:sage [2015/11/28(土) 14:48:25.74 ID:Fi4wDTmy.net]
ダングリングポインタが出ないって利点は有るにはあるが
スマートポインタ使えば済む話だしなぁ
weak_ptrもあるし

72 名前:デフォルトの名無しさん mailto:sage [2015/11/28(土) 15:20:08.61 ID:vL/aYykM.net]
>>68
意味はあるじゃん

73 名前:デフォルトの名無しさん [2015/11/28(土) 17:52:47.31 ID:CKvy7+My.net]
>>68
ここでおしまい!って書いてあるだけ。
こんなんで冗長とは評価されない。むしろ読みやすい。と判断した。

74 名前:デフォルトの名無しさん mailto:sage [2015/11/28(土) 18:23:41.31 ID:ekTV2Qou.net]
変数がどこで不要になるか明示しなきゃならんほど長い関数ばっかり書いてるのか
それともローカル変数とか無い言語を想定してるのか

75 名前:デフォルトの名無しさん mailto:sage [2015/11/28(土) 18:24:46.08 ID:q5KJxTWt.net]
無駄なことするな
どうせ最適化で削除される



76 名前:デフォルトの名無しさん mailto:sage [2015/11/28(土) 18:28:07.06 ID:rTI66XO9.net]
保守性より効率重視なんかでコード書くからメモリリークするんだよ。

77 名前:デフォルトの名無しさん mailto:sage [2015/11/28(土) 19:04:25.52 ID:ekTV2Qou.net]
どんな意味でnull代入をしてるのか他人に伝わらなきゃ保守性もクソも無いよね

78 名前:デフォルトの名無しさん mailto:sage [2015/11/28(土) 19:08:04.34 ID:rTI66XO9.net]
a = null;
で伝わらない人にはどんなコメント書いても伝わらないと思うんだ。

79 名前:デフォルトの名無しさん mailto:sage [2015/11/28(土) 19:27:35.81 ID:pohBt4lh.net]
関数内ローカルな変数は
いくら大きくても大概スコープだけで
どうにでもなる。

javascriptみたいなのはlambdaでスコープ切ればいい。

80 名前:デフォルトの名無しさん [2015/11/28(土) 19:54:24.96 ID:CKvy7+My.net]
>>75,>>77
同じ結論ですわ。
null代入ってやっぱり特殊だから、コメントよりはるかに目が行く。
ここで使い終わったYO!!(逆に言えば、ここまでは意識してね。使ってるから。)ってわかってもらえれば良い。

81 名前:デフォルトの名無しさん mailto:sage [2015/11/28(土) 20:10:37.33 ID:ekTV2Qou.net]
>>77
長い関数中にそれ出てきたら変数を使い回す前に初期化したいのかな?とかも考えるな
短い関数なら変数を使い終わったとか重要な情報じゃないから無駄な行入れて可読性下げてるだけ

82 名前:デフォルトの名無しさん mailto:sage [2015/11/28(土) 20:14:43.65 ID:pohBt4lh.net]
永続的な変数でもなきゃ、変数の寿命はコンパイラが把握しているから、null代入がどんな変数にも必要なら勝手に挿入するんじゃね。

そうじゃないとしたら、なんでもかんでもnull代入が必要なんてのは幻想だよ。

83 名前:デフォルトの名無しさん mailto:sage [2015/11/28(土) 20:16:46.53 ID:Fi4wDTmy.net]
勝手にnullを代入するとか、そんな変なコンパイラは困る

84 名前:デフォルトの名無しさん mailto:sage [2015/11/28(土) 20:47:03.48 ID:03HlMXbm.net]
話は変わるんだがスマートポインタのメリットって何?
コンストラクタで例外投げたとき
そこまでに初期化したメンバ変数のデストラクタを呼ぶため
みたいなのは聞いたことあるけどそれくらいのもん?

85 名前:デフォルトの名無しさん mailto:sage [2015/11/28(土) 21:01:25.91 ID:DqKP/LxN.net]
>>83
別にコンストラクタじゃなくて関数内で確保した場合でも、
例外じゃなくreturnで戻った時も勝手に解放してくれたほうが
有り難いし、そもそも解放処理って忘れやすいものだろ
傘を置き忘れたり洗濯物を洗濯機に入れっぱなしにしたことの
ないものだけスマートポインタに石を投げなさい



86 名前:デフォルトの名無しさん mailto:sage [2015/11/28(土) 21:20:40.16 ID:ETFlkHGB.net]
null 代入したら行数増えるじゃん…全部のローカル変数にやってんの?
どうしても明示したければスコープで区切った方がまし
それでもインデントが深くなるのであれだけど

87 名前:デフォルトの名無しさん mailto:sage [2015/11/28(土) 23:46:43.25 ID:pohBt4lh.net]
>>82
勝手にnull代入すると表現するから気持ち悪く感じるだけで、コンパイラが各変数についてもうアクセスされる可能性の無い基本ブロックに到達したら、その変数をGCのマークの起点として使用しないようにフラグを管理すると言えば当たり前の話じゃね。
フラグの持ち方として変数にnullを代入しているだけで。

88 名前:デフォルトの名無しさん mailto:sage [2015/11/29(日) 00:14:42.24 ID:qbMwzV1h.net]
>>84
> そもそも解放処理って忘れやすいものだろ

それを忘れるなどとんでもない
確保&開放なんてプログラミングの花じゃん
キモじゃん
そこを工夫するのが楽しいんじゃん
設計も楽しいし
チマチマテストすんのも楽しい
温泉行って湯につかり忘れる心配はない

89 名前:デフォルトの名無しさん mailto:sage [2015/11/29(日) 00:30:29.12 ID:Co3W2iFa.net]
>>87
まあ勉強目的でやるならいいんじゃね
俺は元々ゲームプログラマだったからもう嫌になるほどやったし
メモリ周り工夫するなら言語設計からしたいわ

90 名前:デフォルトの名無しさん mailto:sage [2015/11/29(日) 13:48:13.85 ID:U49gaUJj.net]
信じて送り出した >>87 がわがままな顧客を✕✕して三面記事に載るなんて…

91 名前:デフォルトの名無しさん mailto:sage [2015/11/29(日) 14:29:40.51 ID:c+9MHjtm.net]
マークスイープ型のGCが必要かどうかについて、もう少し建設的な会話をしようよ
リソースを自動で開放してくれる機能は、無いよりは有った方が絶対に良い、と言い切ってよいよね
ただ、その方式が話の焦点だと思う

C++のスマポの参照カウンタ方式はデストラクタとの相性が良いし、RAIIもよく機能するし
開放されるタイミングもはっきりしているのて、手続き型言語と相性が良いし、軽い
ただし、循環参照があるとリークする
解決策として、片方をweak_ptrにするという方法が用意されている
weak_ptrは対象オブジェクトが開放されると勝手にヌルポみたいになるのでいろいろと悪用ができる

一方でマークスイープ系のGCは、循環参照があってもリークしない
しかし参照カウンタ方式に比べてマークスイープ系のGCが優れている点は、それだけ
重いし、いつ開放処理が実行されるか分からないので
リソース開放のタイミングを明確に行いたい場合のための別の仕組みが必要になった

どちらを選ぶ?

92 名前:デフォルトの名無しさん mailto:sage [2015/11/29(日) 14:58:17.95 ID:7vkfzAlt.net]
GCの意見・・・OSではページファイル関連?
peace.2ch.net/test/read.cgi/tech/1447856699/l50

93 名前:デフォルトの名無しさん mailto:sage [2015/11/29(日) 15:57:55.75 ID:Co3W2iFa.net]
そもそもc++においてメモリリークって対策も発見も
大して難しい部類のバグではないんだよなぁ
GCの優位性をアピールするために過剰に恐怖心を煽ってる気がする

94 名前:デフォルトの名無しさん mailto:sage [2015/11/29(日) 16:00:08.95 ID:sCmmZzWu.net]
>>92
その程度の案件しか受けてないからだろう。

95 名前:デフォルトの名無しさん mailto:sage [2015/11/29(日) 16:05:07.63 ID:QSPcxrGF.net]
>>90
つ世代別GC

immutableオブジェクトをバンバンnewしまくる関数型プログラミングに慣れてると
やっぱGCないとキツイわ



96 名前:デフォルトの名無しさん mailto:sage [2015/11/29(日) 16:15:05.64 ID:Co3W2iFa.net]
>>93
いやいや普通難しいとされるバグってメモリ破壊とか同期周りだから
メモリリークなんてデバッガがチェックして丁寧なダンプ出してくれるし
組み込みとかの貧弱な環境なら専用のメモリ管理を用意して
いくらでも好きなチェックや情報出せるから

97 名前:デフォルトの名無しさん mailto:sage [2015/11/29(日) 16:17:37.80 ID:AV0cYAnH.net]
>>92
それな
メモリの確保と開放の対応すら管理できない奴は
なんかもう何をどうしたってダメな気がする
初歩の初歩の初歩の話題を何度も何度も何度も繰り返しすぎ

98 名前:デフォルトの名無しさん [2015/11/29(日) 16:20:05.34 ID:3h4H/kBH.net]
忘れるとか忘れないとか池沼レベルの話じゃん。
ゴミクズ。

メモリの解放が必要ならそれは必要な機能の実装ってことになる。
それを忘れるってことはプログラムを組んでいて必要な機能の実装を忘れるってことだ。
必要な機能の実装を忘れるということは、例えば通販サイトのシステム開発請け負っておきながら、決済システムを実装し忘れるのと同等。
ありえない。
プログラム云々以前に頭の問題だろう。

必要な機能の実装を忘れる可能性におびえる池沼プログラマ。
最近流行りのADHD?なんじゃねえの。

99 名前:デフォルトの名無しさん mailto:sage [2015/11/29(日) 16:24:33.80 ID:sCmmZzWu.net]
>>95
なるほど。経験の少なさがすぐ分るな。ログ出したらで数十ギガなんてよくあるよ。
ログから問題点をスクリプトで抽出するにも何時間とかかるとかいろいろ。
マルチスレッド絡んで特定のパターンだけだったりして再現性がなかったりする。
他システムの連携だと手が出せない部分の挙動がおかしい可能性もある。結局、oracleのバグだったとかね。

100 名前:デフォルトの名無しさん [2015/11/29(日) 16:25:01.11 ID:1uX74bCE.net]
>>97
決済システムとメモリ解放は違うよ。
通販サイトのシステムをC言語で実装してみればわかるかと。

101 名前:デフォルトの名無しさん mailto:sage [2015/11/29(日) 16:36:20.27 ID:Co3W2iFa.net]
>>98
はあ?なんでリーク箇所ダンプするだけの話でログ全部吐き出すことになってんの
普通確保する際にヘッダにそのブロックの確保場所埋め込んでるし
アロケータで生存期間のスコープを切り分けといてすぐ分かるようにするけど?
お前の関わったプロジェクトが糞なだけじゃね?

102 名前:デフォルトの名無しさん mailto:sage [2015/11/29(日) 16:42:54.34 ID:snjMtaUP.net]
そもそも今時c++でgcならなんとかなる類いのメモリリーク起こすなんて、プログラマが屑なだけ。
リソースリークやその他の問題も確実に起こすこと請け合い。
GC言語でそのレベルのプログラマを使うような案件はGCによるメモリオーバーヘッドが気にならず、リソースリークも問題にならないような非常に緩い案件でしかない。

103 名前:デフォルトの名無しさん mailto:sage [2015/11/29(日) 16:46:22.91 ID:sCmmZzWu.net]
>>100
はぁ。話にならんな。扱ってる規模が違いすぎる。

104 名前:デフォルトの名無しさん mailto:sage [2015/11/29(日) 16:52:06.50 ID:Co3W2iFa.net]
>>102
おいおい反論できずに捨て台詞かよ
上でも書いたがコンシューマで開発してたから
100人*数年の規模でやってたんだけど
もしかしてC++みたいな危険な言語使ってて
今の今まで解析ツールなり自前のメモリ管理なり知らなかったの?

105 名前:デフォルトの名無しさん mailto:sage [2015/11/29(日) 19:41:19.37 ID:GW0SCIDI.net]
お前ら派遣だろw
全体規模とお前らが任されてる範囲を都合よく混ぜるな。



106 名前:デフォルトの名無しさん [2015/11/29(日) 22:07:37.11 ID:3h4H/kBH.net]
ほーら、自分の知能が一般人より低いと認めたくないがゆえにレッテル貼りが始まった。
普通の人が当たり前にできることができないってかわいそうだな。
もしADHD?だったら治療法あるらしいから病院行ってみたら?
ここでレッテル貼りやってるよりよっぽど解決する可能性が高いぞ。

107 名前:デフォルトの名無しさん mailto:sage [2015/11/29(日) 22:12:02.58 ID:QSPcxrGF.net]
レッテル貼りは2chの華

108 名前:デフォルトの名無しさん mailto:sage [2015/11/30(月) 08:34:00.92 ID:qSWjFIuy.net]
>>100
リーク箇所がわかってればログ出力の必要なくね?
ホントに開発したことあるのかな?

109 名前:デフォルトの名無しさん mailto:sage [2015/11/30(月) 09:12:24.63 ID:UQyKbzCH.net]
>>107
普通C++のプロジェクトは専用のメモリ管理を用意するから
リークしたメモリはそれを確保したクラスとその行数まで特定できるようにしてるよ
アロケーターも分離しとけばアプリケーション終了させなくても
管理オブジェクトを破棄した時点でリークの判定できるし

リーク箇所特定するのに全ログから解析とか複合的なバグでもない限りしない
そんな状況許してる時点で負け

110 名前:デフォルトの名無しさん mailto:sage [2015/11/30(月) 12:11:48.62 ID:fg7tHWVi.net]
100人で数年のシステムなら
10人で一年でやるべきだな。
人を無駄に増やせば、意思疎通や連携に無駄に労力を割く。
開放云々より仕様レベルで齟齬が出やすくなるわ。

111 名前:デフォルトの名無しさん mailto:sage [2015/11/30(月) 15:00:18.02 ID:Ee9Jt/HC.net]
>>108
リークしたクラスが分ればリーク原因が分るとかお花畑杉w

112 名前:デフォルトの名無しさん mailto:sage [2015/11/30(月) 19:23:16.25 ID:UQyKbzCH.net]
>>110
誰もリークしたクラスの事なんて言ってないんだが…理解できてる?(笑)
解らないなら解るだけの情報埋めたら?

113 名前:デフォルトの名無しさん mailto:sage [2015/11/30(月) 19:24:12.90 ID:Ee9Jt/HC.net]
おいおいw

114 名前:デフォルトの名無しさん mailto:sage [2015/11/30(月) 19:31:17.77 ID:UQyKbzCH.net]
>>112
そもそもGCがあろうとコンテナに突っ込んで消し忘れれば
オブジェクト破棄するまでメモリ圧迫し続けるって理解できてる?
リーク単体ならC++はそれと同等のレベルまで分かりやすく出来るんだよ
C++が困難なのはそういった管理情報も簡単に破壊出来てしまう点
リーク単体なら怖くはない

115 名前:デフォルトの名無しさん mailto:sage [2015/11/30(月) 19:47:37.41 ID:UQyKbzCH.net]
なんかだんだん笑えて来たんだけど、ろくに理由も言わずに
「わかんないんですけど!?わかる奴はお花畑(怒)!!」って
なかなか面白い奴だな



116 名前:デフォルトの名無しさん [2015/11/30(月) 19:50:22.70 ID:isQX20zS.net]
メモリの解放すら管理できない奴が、複雑な仕様を管理できるとは到底思えない・・・。
メモリの解放なんてなんの苦にもならんが・・・。

117 名前:デフォルトの名無しさん mailto:sage [2015/11/30(月) 20:14:21.83 ID:Ee9Jt/HC.net]
やれやれw

MSやLinuxやFreeBSDまでメモリリークやらかす理由が分らないのか。

118 名前:デフォルトの名無しさん mailto:sage [2015/11/30(月) 20:30:16.55 ID:UQyKbzCH.net]
>>116
また反論できずに逃走かよw
そもそも欧米は原因分かっててもバグ無視する連中だろうがw
ライセンスで守られてりゃ平気で放置するぞ

119 名前:デフォルトの名無しさん mailto:sage [2015/11/30(月) 20:33:04.33 ID:V9s4KAVu.net]
人生の管理ができない奴が、メモリを管理できるとは到底思えない

120 名前:デフォルトの名無しさん mailto:sage [2015/11/30(月) 20:49:26.08 ID:UQyKbzCH.net]
そもそもLinuxカーネルもFreeBSDカーネルもC言語だろ
馬鹿丸出しだなw

121 名前:デフォルトの名無しさん mailto:sage [2015/11/30(月) 21:16:22.39 ID:zT+q2mn+.net]
>>115
それな
プログラミングにおいてメモリ周囲はまだ初歩だよな
そしてマルチスレッドはそれよりは大変だがこれも慣れると
結局大事なところをガッチリ排他処理するだけのことだしな

プログラミングって最後はインタフェース設計だけだから
使いやすくてコンパクトなインタフェースを求めていくだけ
これがプログラミング道の後半の道のり

122 名前:デフォルトの名無しさん mailto:sage [2015/11/30(月) 21:18:50.76 ID:Ee9Jt/HC.net]
>>120
で例外系の実装がないから破綻するんだよ。実務経験ないとすぐ短絡的になるのが分る。

123 名前:デフォルトの名無しさん mailto:sage [2015/11/30(月) 21:25:49.32 ID:zT+q2mn+.net]
意味が不明すぐるw

124 名前:デフォルトの名無しさん mailto:sage [2015/11/30(月) 21:28:33.92 ID:Ee9Jt/HC.net]
うむ。まだおまえには早いかもしれない。

125 名前:デフォルトの名無しさん mailto:sage [2015/11/30(月) 21:47:43.54 ID:UQyKbzCH.net]
>>122
馬鹿相手にしても時間の無駄だぞ
こいつ具体的なこと何も言わんし



126 名前:デフォルトの名無しさん mailto:sage [2015/11/30(月) 22:07:34.86 ID:zT+q2mn+.net]
>>124
そやね
一連のレスの意図すらよーわからんわ

127 名前:デフォルトの名無しさん mailto:sage [2015/12/01(火) 00:23:09.00 ID:s1rcgCDh.net]
Guilty Crown?
たしかに失敗作だったなあ…

128 名前:デフォルトの名無しさん mailto:sage [2015/12/01(火) 01:24:29.91 ID:mVPa8mQr.net]
GCが云々というより抽象的なプログラミングしたい時は基本的なメモリ管理を言語に任せたいという欲求

129 名前:デフォルトの名無しさん mailto:sage [2015/12/01(火) 01:27:09.96 ID:mVPa8mQr.net]
>>113
c++素人なんだけどリーク単体はともかくそれにメモリ破壊が合わさると頭がおかしくなって死ぬ
みたいな感じ?

130 名前:デフォルトの名無しさん mailto:sage [2015/12/01(火) 01:30:32.01 ID:s1rcgCDh.net]
GCは関数型プログラミングでのみ正当化される
命令型プログラミングでは全く正当化されない

命令型プログラミング(=チューリングマシンに基づく計算モデル)は読み書きの「順序」こそがネ申なので
命令コードの「順序」を横断して存続するブツは善と悪の最終戦争で滅ぼされるであろう
つまり確保し、使ったら後開放する、これを明示的に書き下す姿勢こそが正しい

131 名前:デフォルトの名無しさん mailto:sage [2015/12/01(火) 01:31:50.27 ID:s1rcgCDh.net]
>GCは関数型プログラミングでのみ正当化される
ちな、これは処理系の裏方としての存在が許される、の意味

132 名前:デフォルトの名無しさん mailto:sage [2015/12/01(火) 01:36:31.76 ID:mVPa8mQr.net]
関数型プログラミング好きだけど
代数型データ型と型クラスでモナドとかアプリカティブとかtraverse、free monadとかやってる時に
メモリ管理だの言われたら余裕で死ねるな
本物のhaskellプログラマはhaskellで低レイヤを書くらしいけど

133 名前:運用中(トリなしw mailto:アハ♪” uh huh [2015/12/01(火) 04:32:07.54 ID:79aHC4wo.net]
口 先 人 間 展 覧 会 。(アハ

134 名前:デフォルトの名無しさん mailto:sage [2015/12/01(火) 12:55:11.72 ID:S8usJREu.net]
>>128
> メモリ破壊が合わさると

これが合わさるとなんでもありありなので何が起きても不思議はない
なので、ダングリングポインタの管理と配列のレンジチェックはちゃんとやるべし

135 名前:デフォルトの名無しさん mailto:sage [2015/12/03(木) 12:20:09.85 ID:AuS7g0FI.net]
ここでメモリ確保
ここでメモリ解放

たったこれだけが書けない管理できないとかw



136 名前:デフォルトの名無しさん mailto:sage [2015/12/03(木) 12:23:19.04 ID:n26CULk9.net]
知らないでやるって幸せなことなんですね

137 名前:デフォルトの名無しさん mailto:sage [2015/12/03(木) 13:19:32.39 ID:N5r0JkUz.net]
>>134
下には下がいるんだよ

138 名前:デフォルトの名無しさん mailto:sage [2015/12/03(木) 13:29:54.15 ID:JbiOZ/E3.net]
メモリリークは開放忘れでなると思ってる低レベルがいるのか。

139 名前:デフォルトの名無しさん mailto:sage [2015/12/03(木) 14:07:05.91 ID:n26CULk9.net]
低レベルなことを舐めるなよ

140 名前:デフォルトの名無しさん [2015/12/03(木) 16:32:54.69 ID:JraK7tKY.net]
>>134
mallocでOSから確保したメモリはfreeで解放されないんだが、

「ここで解放」はどうやって書くんでしょう?

141 名前:デフォルトの名無しさん [2015/12/03(木) 19:43:25.89 ID:R/g8PPkY.net]
>>137>>139みたいのが知識や技術に溺れて本質を見失い、
人と会話ができなくなった人の見本なんだろうか

142 名前:デフォルトの名無しさん [2015/12/03(木) 19:47:17.15 ID:JraK7tKY.net]
>>140
今まで正しいと信じきってた鰯の頭が迷信だと指摘され発狂中

143 名前:デフォルトの名無しさん [2015/12/03(木) 19:53:39.75 ID:R/g8PPkY.net]
>>141おw おまえ会社で孤立してるだろ派遣w

144 名前:デフォルトの名無しさん [2015/12/03(木) 20:32:35.32 ID:R04IP6VM.net]
確保したやつが解放するんだぞ。大丈夫か?

145 名前:デフォルトの名無しさん mailto:sage [2015/12/03(木) 20:33:46.24 ID:cWTIfUD3.net]
想像を絶するアホは居るもんだよ
if (cond) exp; の場合も中カッコを必ず付ける流派ってのがあって
理由を聞くと
if (cond) {exp1; exp2;}とするはずが
if (cond) exp1; exp2;としてしまうのを防ぐための常に中カッコらしい

中カッコを書き忘れるくらいの意識レベルで書かれたコードって
他のとこももう全部ダメだろそれは



146 名前:デフォルトの名無しさん mailto:sage [2015/12/03(木) 20:52:03.75 ID:s/TINiTx.net]
>>144
お前がアホなwww

147 名前:デフォルトの名無しさん mailto:sage [2015/12/03(木) 21:25:03.70 ID:n26CULk9.net]
カッコ先につけといたほうが 後々、都合がいいことも

148 名前:デフォルトの名無しさん mailto:sage [2015/12/03(木) 21:30:08.65 ID:WeEbsZB7.net]
アホな書き方といえば
 if ( 1 == a ) {
って比較元と先を逆にしてる奴

149 名前:デフォルトの名無しさん mailto:sage [2015/12/03(木) 21:41:57.39 ID:4rUKwdGH.net]
別におかしくない
基準値が先にあって、それと比べてaがどうなのか、と考えるか
aが先にあって、基準値と比べてどうなのか、と考えるかの違いでしか無いから
どっちでも良い

150 名前:デフォルトの名無しさん mailto:sage [2015/12/03(木) 21:59:47.07 ID:/xqyH1ID.net]
>>147
知ってて言ってると思うが、定数を==の左辺にするのは
if (a=1) { ...
と書き間違うのを恐れているらしい

>>139
free()から設計し直す、
まあfree()の度OSにメモリを律儀に返していたらパフォーマンスが多少落ちるがGCに精神を汚染されるよりはマシ

>>135
スレッド安全に書かない奴が悪いていうかそれは別の話
シングルスレッド状況(またはそれと等価な状況)では>>134の言っていることは全く正しい

151 名前:デフォルトの名無しさん mailto:sage [2015/12/03(木) 22:27:47.14 ID:zepIVOGi.net]
ここ数日一気にレベルが下がったなw
GCの話しろよw

152 名前:デフォルトの名無しさん mailto:sage [2015/12/03(木) 22:46:13.76 ID:srgQPG9D.net]
つーか前スレと同じこと書いてる人多数
頼むから前スレ読んできて

153 名前:デフォルトの名無しさん [2015/12/04(金) 04:37:18.54 ID:HtuddwW0.net]
【 オンラインTCGエディター 】 >>1

デュエル・マスターズ的な非電源TCGの 《 オンライン化ツクール系ソフト 》 制作の企画。

例えば、ガチンコ・ジャッジを直ぐにでも導入できる機能を持っておりながら、
当面それを扱わず単純化させておいて、事後的に導入拡張する際に当該システムを
ブロック構造の組み合わせで後付け挿入できるように予めシステム化してあるソフト(エディター)。
既存の非電源TCGを劣らずに再現できるならば大概のニーズに応えられる筈。
バトスピ、ヴァンガ、ウィクロス、ポケカ、デジモン、ゼクス、モンコレ、ガンダム・ウォー、ライブオン、ディメンション・ゼロ、カードヒーロー、シャーマン・キングなど
のシステムを完全再現できるように設計するけど、他に此のTCGの此のシステムは再現希望とか有ったら書いて。
マジック:ザ・ギャザリングの全システムを完全に再現するのは無理だから、此れだけは必用だ!って部分のみリクエストして。
WEB通信での対戦は、個vs個、多数乱戦、チームvsチーム、個vsチームを可能な仕様とする方針。

設計思想は 《 RPGツクール 》 が良いかな?  他に、優れたエディター有ったら挙げてみて。

個人や企業などのベンダーが提示する開発費(見積もり)で折り合えば、発注する。

エディター群から基本コンセプトを絞り込む(もちろんオリジナルで優れた新ネタが有れば導入する)。

遊戯王OCGに関しては、タッグフォース、ADS、デュエルオンラインを発注先ベンダーに研究させる。
なるべく前述3つで可能な再現は全て実装させる方向を目指す。 まぁ努力する・・・
バトスピ、ヴァンガ、バディ、デュエマなど発売済みゲームソフトが存在してるケースはベンダーに研究させる。

各社TCGを再現するテストプレイ ⇒ 更に改良や修正。

機能制限した下位版を5万円以上で発売 + デュエリ−グ用に改造した上位版でサーバー稼動=営業開始。

下位版の改造および商用利用には、別途で当社との契約が必要。

さ〜て、製作ベンダー見つけよっと!ww(クス
wc2014.2ch.net/test/read.cgi/entrance2/1449039272/-18

154 名前:デフォルトの名無しさん mailto:sage [2015/12/04(金) 12:21:13.29 ID:GzeAUkqU.net]
>>149
>free()から設計し直す、
>まあfree()の度OSにメモリを律儀に返していたらパフォーマンスが多少落ちるがGCに精神を汚染されるよりはマシ

じゃ>>134は設計し直してから言うんだな。坊や。
って、事でオッケーね。

155 名前:デフォルトの名無しさん [2015/12/04(金) 20:05:33.81 ID:SAJ9n/s7.net]
>>137これって何が言いたいの?OSやライブラリ自体にミスがあるって言いたいの?
wikiより
>メモリリーク (Memory leak) とは、プログラミングにおけるバグの一種。
>プログラムが確保したメモリの一部、または全部を解放するのを忘れ、確保したままになってしまうことを言う。
>プログラマによる単純なミスやプログラムの論理的欠陥によって発生することが多い。

>>137みたいなこと言う奴って、電磁波からデータが盗まれる!対応しないと!とか言い出すタイプ?



156 名前:デフォルトの名無しさん mailto:sage [2015/12/04(金) 21:16:45.71 ID:7W1HEY29.net]
>>

157 名前:151
そもそも15年ぐらい前から延々繰り返されてるんだが…
[]
[ここ壊れてます]






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<210KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef