X



GCは失敗。メモリは自分で管理せよ! その2©2ch.net
■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん 転載ダメ©2ch.net
垢版 |
2015/11/18(水) 23:24:59.79ID:BUQ68wTG
GC、ガベージコレクション、ガベージコレクタ、ガーベジコレクション、ガーベジコレクタは使えない。
以下GCと記す

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

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

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

前スレ
GCは失敗。メモリは自分で管理せよ!
http://peace.2ch.net/test/read.cgi/tech/1412986420/
0468デフォルトの名無しさん
垢版 |
2016/04/17(日) 23:09:38.99ID:j/f/oFPY
あと正確にはGCには含まれないけどメモリコンパクションをやってくれる処理系が多いのも
GCを使う利点になるかも
0469デフォルトの名無しさん
垢版 |
2016/04/17(日) 23:17:23.70ID:cFoKw8Zx
今どき意図的にやらない限りメモリフラグメンテーションで困るような場面があるか?
アドレス空間も余裕出てきたし、多少おかしな確保パターンで浪費してもGCほど実メモリを食わないし。
今どき主流のサイズ毎に空きを管理するmallocは優秀だしね。
これがダメならlinuxカーネルとか先に落ちちゃうぞ。
0470デフォルトの名無しさん
垢版 |
2016/04/18(月) 15:56:44.18ID:kcE0qDSU
>>469
昔、C/C++を駆使して日本が誇るスパコン京に投入するタスクセットを書き上げたのだが
実行するとどうも性能が出ない。
色々調べた結果、どうやらメモリーが断片化していることが分かった。
そこで多大な投資を行いJavaで書き直したらなんと100倍も性能が上がったのです!
これが>>468さんの経験してきたことなんです。
0473デフォルトの名無しさん
垢版 |
2016/04/18(月) 16:44:52.62ID:9yQABY6F
ゲームだとフラグメント問題になること多いよ
ゲーム専用機なら特に
最近は特にオープンワールドが当たり前になってるけど
あれストリーミングでどんどんメモリ置き換えていくしね
0475デフォルトの名無しさん
垢版 |
2016/04/18(月) 17:47:00.91ID:IBBVu28x
ゲーム専用機でフラグメンテーションおこすとか開発者としての適性を疑われても不思議ではない。
オブジェクトの寿命管理すらしないのか?
0476デフォルトの名無しさん
垢版 |
2016/04/18(月) 18:51:08.61ID:RPQ9NKJO
メモリのフラグメンテーションをC/C++でコントロールする方法ってあるの?
mallocの実装頼りじゃなく。
0478デフォルトの名無しさん
垢版 |
2016/04/18(月) 19:14:30.71ID:OvHIqTOi
細かくメモリ要求するから、下回りで時間がかかる
メモリ分断されてもオンメモリでの検索はさほど時間がかからない
(空きができても、そこに入らないときに)
0480デフォルトの名無しさん
垢版 |
2016/04/18(月) 19:21:39.69ID:IBBVu28x
寿命管理で解決できないとか、フラグメンテーションがどういう現象か分かっているの?

汎用の寿命管理APIみたいなのを使うとか言うのと勘違いでもしている?
0481デフォルトの名無しさん
垢版 |
2016/04/18(月) 20:02:22.75ID:3yZKjOEp
>>480
おいおい・・
この場合寿命を管理できないってのはgiven conditionとして考えないと
そりゃ寿命があらかじめわかってるなら苦労しないっての
大規模なプログラムでそんな恵まれた状況は例外的だよ
0482デフォルトの名無しさん
垢版 |
2016/04/18(月) 20:57:42.92ID:IBBVu28x
専用ゲーム機上のゲームだよ。
リソースが逼迫したら何を優先するかの戦略も含めてほぼ理想的なgiven conditionだろうに。
ユーザーの行動による不確定性も全てコントロール下にあるだろうに。
0483デフォルトの名無しさん
垢版 |
2016/04/18(月) 21:13:59.16ID:RPQ9NKJO
>>482 専用ゲーム機と普通のPCの1アプリケーションとで何が違うのか。mallocも使わないってこと?
NoGC, 各GCでメモリ空間がどう使われるかを視覚化
ttps://spin.atomicobject.com/2014/09/03/visualizing-garbage-collection-algorithms/
黒: 未使用
灰: 確保
緑: 読み込み
黄: 書き込み
赤: GC用のアクセス(参照カウンタ、マーク用ビットetc)
緑と黄は時間経過で退色していく

メモリフラグメンテーションという観点から見ると、コピー型GCが綺麗。
0485デフォルトの名無しさん
垢版 |
2016/04/18(月) 21:33:24.92ID:kcE0qDSU
Javaの寿命管理APIは最強ですな。
0486デフォルトの名無しさん
垢版 |
2016/04/18(月) 21:49:39.41ID:9yQABY6F
>>482
GTAみたいなゲーム考えてみ?
あれ全てオブジェクトの寿命を事前に決められると思う?
原理的には不可能じゃないだろうがそんな職人的な作りしてたら開発に10年かかるわw
0487デフォルトの名無しさん
垢版 |
2016/04/18(月) 21:56:15.95ID:IBBVu28x
普通のmallocで足りるならそれでもいいけど。
基本メモリ容量ギリギリまで使うから、最初に描画、ゲーム内部状態、音声、ディスクキャッシュなどでどのくらい使うか決めておく。
終始一貫して静的に決めるのが楽だけど、場合によっては場面ごとに配分を切り替えたりする。
で、例えば広いマップ上を自由に動き回るようなゲームだと、マップを複数のパーツに分割して、詳細モデルから簡易モデルまで用意する。
0488デフォルトの名無しさん
垢版 |
2016/04/18(月) 22:12:01.61ID:3yZKjOEp
ゲームプログラムとかならメモリ確保は直接システムコール呼び出して
ページ単位でアロケートするのが定石
必要ならmspaceとかインスタンスベースのヒープを自分で作る
0489デフォルトの名無しさん
垢版 |
2016/04/19(火) 01:49:46.30ID:KVIhh3Hm
使用できるメモリのサイズも空きメモリのサイズも最初から分かってて、ユーザーからの入力も限られてて、
そいつら全部自分で管理できる「恵まれた」環境でしか通用しないアプローチだよなそれ。
0490デフォルトの名無しさん
垢版 |
2016/04/19(火) 01:58:46.65ID:fq3yh1do
レーシングゲームは出てくる車が決まっていてコースも決まっているから。
0491デフォルトの名無しさん
垢版 |
2016/04/19(火) 08:28:57.71ID:YcewE61x
昨今はレースゲームでも汎用的なゲームエンジン使うことが多いから
その場合事前に寿命が決まってる前提の作りにはしていないと思うぞ
GDCとかGame Gemとかでも昔からフラグメンテーション対策を含む
メモリ管理の手法はいろいろ議論されているから調べてみるとよろし
0497デフォルトの名無しさん
垢版 |
2016/04/21(木) 02:16:29.96ID:G+xv7xqn
>>496
どうとでもなるって?
へーじゃあ試させてもらうわ
GDC 2016でもこういう講演があった
http://schedule.gdconf.com/session/building-a-low-fragmentation-memory-system-for-64-bit-games
64bitならなぜフラグメンテーションが軽減できるか説明してもらおうか?
物理メモリが多いからじゃないからな
あればあるだけメモリ使うのがゲームなのでメモリに余裕があるわけじゃない
0498デフォルトの名無しさん
垢版 |
2016/04/21(木) 11:32:02.27ID:EjzxVVPK
ゲーム機含む組み込み系は結果が不確定な動的メモリー確保なんかしないのが鉄板(しようとする奴は未熟な馬鹿)だったが
PCと合わせて組み込み機器もスペックが潤沢になって富豪的プログラムが一般的になってきたからね

無知ゆえ聞きたいんだが
最近のゲームソフトやら>>497やらってどういうGC使ってるの?
0499デフォルトの名無しさん
垢版 |
2016/04/21(木) 13:09:31.92ID:pog3nPgL
ゲームだって組込みだって今どき動的メモリー確保しないなんて化石みたいな発想が通るわけないだろ
かといって普通のGCは問題外
賢いメモリアロケーションをするしかないんだよ
>>497は「こんなすごい講演するぞ」って言う宣伝だけだけど中身はどこにあるの?
0500デフォルトの名無しさん
垢版 |
2016/04/21(木) 16:14:15.43ID:lEi5GQja
>>497
MMUが付いているから

物理メモリがフラグメンテーションすることは、ある程度これで防げる
しかもハードウェアの機能だから高速だし、勝手にやってくれるから素晴らしい
速度が重要なゲームでは、これは有り難い
ソフト的なアプローチでこれ以上の細工は遅くなるだけで効果が薄い

問題は論理アドレスの方
32bit空間だと例え物理メモリが余っていても
論理アドレスがフラグメンテーションを起こして連続したメモリを確保できなくなる
物理アドレスが枯渇するよりもさきに、そちらの方が問題になることが多い
64bitだと、これが防げる
0501デフォルトの名無しさん
垢版 |
2016/04/21(木) 16:37:13.61ID:lEi5GQja
各ゲーム機の事情は知らないが
PCで有れば、64bitプロセスは、論理アドレスの空間が256TB(48bit)もある
ゲーム機も似たようなものだろう
256TBもの物理メモリを積んだPCやゲーム機は存在していないし
例え論理アドレスが激しくラグメンテーションを起こしても
256TBもの論理アドレス空間を使い切るという事態は考えなくてよい
つまり、64bitプロセスなら、論理アドレスの心配はしなくてよい

一方で、物理アドレスのフラグメンテーションはMMUに任せておけばよい
これはハードウェアで自動で行われるし、とても高速
その余計にソフトウェア的アプローチで頑張ってみたところで
多少物理メモリのフラグメンテーションは改善されるかもしれないが
徒労というかなんというか、労力に見合わないし
しかも遅くなるのでゲームには向いていないし、やらなくてよい
物理アドレスは自分だけが使っているわけではなく、OSを含めたほかのプロセスも使っているので
自分のプロセスが使っている物理メモリだけフラグメンテーションを解消しようと
コンパクションするのも何か完璧感が無いし
自分のプロセス内だけで考えても、外部ライブラリやXBoxならDirectXが使用している物理メモリの
フラグメンテーションは手が出せないので解消しようがない、やはりやるだけ徒労
自分の管理出来る部分だけ物理メモリのコンパクションをかけても
「これで計算上、必ずあと200MBの物理メモリを使用できる筈」とかといった保証はどこにもない
理由は、外部のライブラリ内での物理メモリの使用状況が分からないし、手が出せないから
とにかく徒労であり、MMUに任せておけばよい
0502デフォルトの名無しさん
垢版 |
2016/04/21(木) 17:22:28.74ID:7dcTEyv0
ただの物理メモリ不足の話がなんでと思ってしまった
swapはじまったら、fpsなゲームはどうなるんでしょうね
0503デフォルトの名無しさん
垢版 |
2016/04/21(木) 19:18:25.46ID:zEEe/DNn
論理アドレスが64bitだったらフラグメンテーション対策なんていらんということ?いや自分もそうは思うんだが。
上の方で「専用ゲーム機開発ならフラグメンテーション対策も行うのが常識!」みたいに主張してる人がいて、
それって自作のmalloc相当のアロケータ作るってことだよね?と思ったんだが、
メモリ節約術とごっちゃにしてる人もいてわけが分からなくなってきた。
0505デフォルトの名無しさん
垢版 |
2016/04/22(金) 08:58:47.78ID:imh5rD9T
>>500
すばらしい、正解
まぁ>>488で答え言ってたわけだけど
某ゲーム機ならコンパクションも実装できるよ

>>503
ページ単位という制限がつくし、速いって言ってもシステムコールなので
ユーザランドで完結するヒープライブラリに比べると遅い
フラグメンテーション対策がいらなくなるわけじゃないよ
0509デフォルトの名無しさん
垢版 |
2016/04/22(金) 19:23:46.16ID:cAq2nbH2
用途ごとにセグメント分けて使い回すのが無難じゃないの
オブジェクトの数が足りなくなったら透明でいいのよ
0510デフォルトの名無しさん
垢版 |
2016/04/22(金) 20:32:21.23ID:1FeuO5Gj
結局のところ、物理アドレスのフラグメンテーションはMMUが勝手になんとかしてくれるからあまり問題にならない

しかし論理アドレスの方は何にもしてくれないのでフラグメンテーション起こして
連続したアドレスが確保出来なくなると、それで終わり、どうしようもない
32bitプロセスだと4GBしか空間がないから、まれに問題になる
64bitプロセスだと無尽蔵に空間があるから問題になることは現状ありえない
0511デフォルトの名無しさん
垢版 |
2016/04/22(金) 23:54:45.31ID:imh5rD9T
>>510
> 結局のところ、物理アドレスのフラグメンテーションはMMUが勝手になんとかしてくれるからあまり問題にならない

MMUってのはアドレス変換するハードウェア
勝手に物理メモリを仮想メモリにマップしたりはしない
それをやるのはOS
0512デフォルトの名無しさん
垢版 |
2016/04/23(土) 00:19:34.35ID:43LRl8T1
そもそも、ページサイズより粒度が細かいフラグメンテーションにはMMUはなんの効果もないしな。
0513デフォルトの名無しさん
垢版 |
2016/04/23(土) 05:06:22.41ID:TwuNXQH0
autorelease()呼んだらコアダンプ糞osがwww
0514デフォルトの名無しさん
垢版 |
2016/04/23(土) 18:49:46.90ID:RPK9BpXO
小さな粒度のフラグメンテーションは気にする必要ない
4KBならUTF-16で2000文字ぐらいしかない
32bitビットマップなら32x32ほとのサイズ
0516デフォルトの名無しさん
垢版 |
2016/04/24(日) 01:18:30.93ID:9YSuZOIq
>>512
お前のプログラムはメモリを1ページしか使わんのかw?
フラグメンテーションで使用率が低いスカスカのページだらけになるのが問題なんだろうが。
0518デフォルトの名無しさん
垢版 |
2016/04/24(日) 08:38:51.73ID:65va2BTL
メモリー512バイトでどうやってヒープを使えと。
0519デフォルトの名無しさん
垢版 |
2016/04/24(日) 09:31:32.99ID:HSA/nLEW
ネイティブコードが必要な場面で中途半端に GC に頼るのが問題なのかもしれないが、もうネイティブコードが必要な戦場は限られた一部だけになってて、主戦場では GC は大前提の技術なんだから必要ないとか言われましてもですわ。
0520デフォルトの名無しさん
垢版 |
2016/04/24(日) 10:14:15.47ID:W23a3TIA
ページがスカスカになっても大丈夫
1ページ4KBとかだからね、十分小さい
32x32-32bitビットマップより小さい

最近のゲームで使われるような大きなサイズのテクスチャなど
でかいサイズを確保する場合はどうせ新しいページが割り当てられるし
小さなサイズを確保する場合は、スカスカになったページから空いているところを探して割り当てられるので
問題ない
0522デフォルトの名無しさん
垢版 |
2016/04/24(日) 10:27:10.54ID:W23a3TIA
物理アドレスはページサイズで切り売りされるので
元から連続しているアドレスは必要ではなく
フラグメンテーションは問題にならない

連続したアドレスが必要になるのは論理アドレスのほうであり
32bitプロセスでは4GBしか空間がないから問題になることがある
64bitプロセスであれば現状問題にならない
0523デフォルトの名無しさん
垢版 |
2016/04/24(日) 10:37:41.02ID:65va2BTL
実はQtでデーモン作って動かしてるのだが、もう半年以上動き続けてる。
まさかこんなに問題が起きないとは。
案ずるより産むがやすしですぞ皆の衆。
0524デフォルトの名無しさん
垢版 |
2016/04/24(日) 10:58:37.83ID:65va2BTL
Qtで作ったのは一日ででっち上げる為だったのだが、意外なことに堅牢に動き続けてる。
0526デフォルトの名無しさん
垢版 |
2016/04/24(日) 12:13:06.27ID:ynYywbEh
>>525
デーモンは通常フォアグラウンドじゃないのでUIを持ちませんぜ旦那。
0528デフォルトの名無しさん
垢版 |
2016/04/24(日) 12:45:58.38ID:TFb7efu7
>>526
だからQtでデーモン?(クエスチョン)…なんじゃね?
加えてQtってGC関係あるのか?
たしかC++のライブラリーだよね?
0529デフォルトの名無しさん
垢版 |
2016/04/24(日) 13:02:46.55ID:ynYywbEh
等と意味不明な供述をしており。
0530デフォルトの名無しさん
垢版 |
2016/04/24(日) 14:52:01.10ID:fu8W/E1c
>>525
Qt 使ってるからと言って QtGui 使ってるとは限らんけどね

>>528
Qt 本体は C++ で書かれてるけ
ど Java, Ruby, Python, Perl, C# 等からも利用できるよ
0532デフォルトの名無しさん
垢版 |
2016/04/24(日) 14:59:36.53ID:ynYywbEh
俺が作ったのはウェブソケットによってサービスを提供するプログラムだ。
エンジンエックスをリバースプロキシとした。
このプログラムは常時数千の接続から大量のリクエストを受け付ける。
接続してくるクライアントは専用に作られQtで書かれている。
大量のリクエストはそれぞれ複数のデータベース検索を引き起こす。

こう書くと結構負荷が高そうなのだが、さすがC++、ほとんど塵程度の負荷しかなく、
当然のことながらリプライに遅延もない。
そこで案ずるよりも生むが易しというわけ。

Qtは出自からしてGUIのためのライブラリではあるのだが、GUIが無いと使えないというわけでもない。
むしろボリュームからすれば、GUI以外の方がより大きい。
そして、半年動きっぱなしで大丈夫ことからして、実は断片化は気にしなくても
良さそうだ。
0533デフォルトの名無しさん
垢版 |
2016/04/24(日) 15:05:02.69ID:ynYywbEh
ちなみにQt使ってなかったら一日でサービスを書き上げることは不可能だっただろう。
Qtは、その他のGUIライブラリ同様バグが多いのだが、GUIを抜いてみるとどうだろう、
意外なほどに堅牢なのだ。
何しろもう半年動きっぱなし。

俺はこの経験から一つの予測を立てた。
これからのサービスは、C++で書かれるようになる可能性がある。
何しろ圧倒的に速い。
一つのリクエストに対するレスポンスが速いため、平均負荷率が圧倒的に下がるのだ。
この事実に世の中が気づくにはそう時間がかからないはず。

そしてsystemdがこの動きを促進するはず。

ちなみにWindowsで書いてLinuxで動かしてます。
0535デフォルトの名無しさん
垢版 |
2016/04/24(日) 15:05:53.54ID:TFb7efu7
>>530
色々な言語から使えるのか
そういう場合Qtが使うメモリーなんかはどういう扱いなんだろうね
GC適用外な気がするけど知らないからこれでやめとくわ
0536デフォルトの名無しさん
垢版 |
2016/04/24(日) 15:08:01.90ID:ynYywbEh
Windowsで書いてLinuxで動かすことに、systemdは大いに貢献した。
従来のデーモンの作り方では、いろいろ煩雑なことがありすぎ、時間の制限から難しかっただろう。

Qt+systemd、この直観的な選択は大成功であった。
0537デフォルトの名無しさん
垢版 |
2016/04/24(日) 15:11:43.89ID:ynYywbEh
Qtのバグの多くは、複数の環境に対応するため、その差異によって引き起こされているという結論を得た。

systemd万歳!
0538デフォルトの名無しさん
垢版 |
2016/04/24(日) 15:16:24.95ID:ynYywbEh
更にもう一つヒントがある。

複数のクライアントから多様なリクエストがあるとはいえ、一つのプログラムが擁する
データ構造などたかが知れているのだ。

クライアントAのリクエストにこたえるため使用された記憶空間は、解放されたのち
クライアントBのためにそのまま使われる可能性があるのだ。

そういったわけで断片化は気にする必要が無い。

若者よ、案ずるより産むが易しですぞ。
0539デフォルトの名無しさん
垢版 |
2016/04/24(日) 15:28:56.74ID:u6qUQj/U
ねえ訳分かんないんだけど
本人以外で理解してる人要るの?
0541デフォルトの名無しさん
垢版 |
2016/04/24(日) 20:02:15.39ID:ynYywbEh
むしろ、わからないのに何故、一生懸命主張していたのかと。
0543デフォルトの名無しさん
垢版 |
2016/04/24(日) 22:39:17.85ID:WrdDgWl7
マークスイープでメモリリークってどうやって起きるんだ?

初心者だから優しく説明してほしい
0544デフォルトの名無しさん
垢版 |
2016/04/25(月) 01:16:56.77ID:/Pmm49fe
狭義の意味では起きない
もし君が気付かない間にオブジェクトへの参照を保持していたらどんなGCだろうが解放されない
それをリークというならリークする
0546デフォルトの名無しさん
垢版 |
2016/04/25(月) 14:51:13.10ID:0xpbBk2N
マーク&スイープでもポインタの型情報を記録してないとリークしまくる

無関係な数値をアドレス参照と勘違いしてマーク→未開放
某言語ではこのために巨大なメモリブロックが開放されない
0548デフォルトの名無しさん
垢版 |
2016/04/29(金) 18:58:56.34ID:I1ppYkAy
>>10
C#はGCの掃除処理を任意で呼び出せるだけだろ

C++/CLIなら自分でdelete呼べば即座に消え去るが
もちろんC++と同じくデストラクタも確実に起動する。
0549デフォルトの名無しさん
垢版 |
2016/04/29(金) 22:46:31.85ID:wZxrhoKH
C++/CLIはデストラクタが呼ばれるだけで、managedメモリの解放がGC任せなのは変わらんよ。
0550デフォルトの名無しさん
垢版 |
2016/05/01(日) 07:57:30.30ID:tKi6j9CT
匿名通信(Tor、i2p等)ができるファイル共有ソフトBitComet(ビットコメット)みたいな、
BitTorrentがオープンソースで開発されています

言語は何でも大丈夫だそうなので、P2P書きたい!って人居ませんか?

Covenantの作者(Lyrise)がそういう人と話したいそうなので、よろしければツイートお願いします
https://twitter.com/Lyrise_al

ちなみにオイラはCovenantの完成が待ち遠しいプログラミングできないアスペルガーw


The Covenant Project
概要

Covenantは、純粋P2Pのファイル共有ソフトです

目的

インターネットにおける権力による抑圧を排除することが最終的な目標です。 そのためにCovenantでは、中央に依存しない、高効率で検索能力の高いファイル共有の機能をユーザーに提供します

特徴

Covenant = Bittorrent + Abstract Network + DHT + (Search = WoT + PoW)

接続は抽象化されているので、I2P, Tor, TCP, Proxy, その他を利用可能です
DHTにはKademlia + コネクションプールを使用します
UPnPによってポートを解放することができますが、Port0でも利用可能です(接続数は少なくなります)
検索リクエスト、アップロード、ダウンロードなどのすべての通信はDHT的に分散され、特定のサーバーに依存しません
w
0552デフォルトの名無しさん
垢版 |
2016/05/02(月) 21:54:41.51ID:KYdaomRZ
GCCは失敗、Clangを使え。
0554デフォルトの名無しさん
垢版 |
2016/05/04(水) 17:42:43.75ID:M8+arjAJ
gccは失敗。
0555デフォルトの名無しさん
垢版 |
2016/05/27(金) 12:06:01.84ID:FwT+WNvC
良スレ発見した。Windowsは32bitで十分だな。32bitでもPAEで4GB超の
メモリ認識するし、仮想メモリは4GBのままだが、AWEを使うことにより
バンク切り替え的にメモリウインドウを切り替えられる
0557デフォルトの名無しさん
垢版 |
2016/05/28(土) 04:39:26.17ID:rTGB9SNh
メモリーは俺が確保してやる、任せろ。
0560デフォルトの名無しさん
垢版 |
2016/05/31(火) 22:56:21.68ID:mtPUDASJ
>>1みたいなやつは
研究室にヒキって、社会に出たことないんやろ

おまえ、本気の糞コードで書かれたペチプ〜とか見たらチビるで
あんなんに加えてメモリ管理なんてやらせたら
それこそHELLO END OF THE WORLD
この世の終わりですわ
0563デフォルトの名無しさん
垢版 |
2016/06/18(土) 23:15:40.44ID:03AgrRUX
指摘してるレスがなかったので言っとくが
循環参照は参照カウント方式+Cycle Collectorでも回収できるから
GCは必須じゃないぞ
興味があるならBacon Cycle Collectorで調べてみろ
0564デフォルトの名無しさん
垢版 |
2016/06/18(土) 23:22:46.70ID:/B2fY0/K
学生の頃は循環参照できないことに困ってたけど、今となっては何時
循環参照が必要になるかさえ思い出せんな。
0567デフォルトの名無しさん
垢版 |
2016/06/20(月) 01:16:50.71ID:30YoNw6z
(コンパクションしてくれるんだろうか)
■ このスレッドは過去ログ倉庫に格納されています

ニューススポーツなんでも実況