[過去ログ] GCは失敗。メモリは自分で管理せよ! その2©2ch.net (720レス)
1-

このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
470: デフォルトの名無しさん [] 2016/04/18(月) 15:56:44.18 ID:kcE0qDSU(1/2) AAS
>>469
469(1): デフォルトの名無しさん [sage] 2016/04/17(日) 23:17:23.70 ID:cFoKw8Zx(2/2) AAS
今どき意図的にやらない限りメモリフラグメンテーションで困るような場面があるか?
アドレス空間も余裕出てきたし、多少おかしな確保パターンで浪費してもGCほど実メモリを食わないし。
今どき主流のサイズ毎に空きを管理するmallocは優秀だしね。
これがダメならlinuxカーネルとか先に落ちちゃうぞ。
昔、C/C++を駆使して日本が誇るスパコン京に投入するタスクセットを書き上げたのだが
実行するとどうも性能が出ない。
色々調べた結果、どうやらメモリーが断片化していることが分かった。
そこで多大な投資を行いJavaで書き直したらなんと100倍も性能が上がったのです!
これが>>468
468(1): デフォルトの名無しさん [sage] 2016/04/17(日) 23:09:38.99 ID:j/f/oFPY(3/3) AAS
あと正確にはGCには含まれないけどメモリコンパクションをやってくれる処理系が多いのも
GCを使う利点になるかも
さんの経験してきたことなんです。
471: デフォルトの名無しさん [sage] 2016/04/18(月) 16:30:17.23 ID:BDPQ12Es(1) AAS
自前のメモリ管理が超下手くそなだけやろ
修業して出直してこいや
472: デフォルトの名無しさん [sage] 2016/04/18(月) 16:37:09.21 ID:OvHIqTOi(1/3) AAS
自慢になってないような
473: デフォルトの名無しさん [sage] 2016/04/18(月) 16:44:52.62 ID:9yQABY6F(1/3) AAS
ゲームだとフラグメント問題になること多いよ
ゲーム専用機なら特に
最近は特にオープンワールドが当たり前になってるけど
あれストリーミングでどんどんメモリ置き換えていくしね
474: デフォルトの名無しさん [sage] 2016/04/18(月) 16:47:31.98 ID:/wa5LIjH(1) AAS
jemallocのようなモダンなmalloc実装使えば良かったのでは。
475
(1): デフォルトの名無しさん [sage] 2016/04/18(月) 17:47:00.91 ID:IBBVu28x(1/4) AAS
ゲーム専用機でフラグメンテーションおこすとか開発者としての適性を疑われても不思議ではない。
オブジェクトの寿命管理すらしないのか?
476: デフォルトの名無しさん [sage] 2016/04/18(月) 18:51:08.61 ID:RPQ9NKJO(1/2) AAS
メモリのフラグメンテーションをC/C++でコントロールする方法ってあるの?
mallocの実装頼りじゃなく。
477: デフォルトの名無しさん [sage] 2016/04/18(月) 19:05:27.63 ID:OvHIqTOi(2/3) AAS
mallocの挙動がわかってれば、ある程度は・・・・
478: デフォルトの名無しさん [sage] 2016/04/18(月) 19:14:30.71 ID:OvHIqTOi(3/3) AAS
細かくメモリ要求するから、下回りで時間がかかる
メモリ分断されてもオンメモリでの検索はさほど時間がかからない
(空きができても、そこに入らないときに)
479: デフォルトの名無しさん [sage] 2016/04/18(月) 19:15:14.97 ID:9yQABY6F(2/3) AAS
>>475
フラグメンテーションって何かわかってないでしょ?
寿命管理だけでは解決できないよ
480
(1): デフォルトの名無しさん [sage] 2016/04/18(月) 19:21:39.69 ID:IBBVu28x(2/4) AAS
寿命管理で解決できないとか、フラグメンテーションがどういう現象か分かっているの?

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

メモリフラグメンテーションという観点から見ると、コピー型GCが綺麗。
484: デフォルトの名無しさん [sage] 2016/04/18(月) 21:15:59.31 ID:3yZKjOEp(2/3) AAS
まぁテトリスとかならその程度の理解でいいんじゃない?w
485: デフォルトの名無しさん [] 2016/04/18(月) 21:33:24.92 ID:kcE0qDSU(2/2) AAS
Javaの寿命管理APIは最強ですな。
486
(1): デフォルトの名無しさん [sage] 2016/04/18(月) 21:49:39.41 ID:9yQABY6F(3/3) AAS
>>482
GTAみたいなゲーム考えてみ?
あれ全てオブジェクトの寿命を事前に決められると思う?
原理的には不可能じゃないだろうがそんな職人的な作りしてたら開発に10年かかるわw
487: デフォルトの名無しさん [sage] 2016/04/18(月) 21:56:15.95 ID:IBBVu28x(4/4) AAS
普通のmallocで足りるならそれでもいいけど。
基本メモリ容量ギリギリまで使うから、最初に描画、ゲーム内部状態、音声、ディスクキャッシュなどでどのくらい使うか決めておく。
終始一貫して静的に決めるのが楽だけど、場合によっては場面ごとに配分を切り替えたりする。
で、例えば広いマップ上を自由に動き回るようなゲームだと、マップを複数のパーツに分割して、詳細モデルから簡易モデルまで用意する。
488
(1): デフォルトの名無しさん [sage] 2016/04/18(月) 22:12:01.61 ID:3yZKjOEp(3/3) AAS
ゲームプログラムとかならメモリ確保は直接システムコール呼び出して
ページ単位でアロケートするのが定石
必要ならmspaceとかインスタンスベースのヒープを自分で作る
489
(1): デフォルトの名無しさん [sage] 2016/04/19(火) 01:49:46.30 ID:KVIhh3Hm(1) AAS
使用できるメモリのサイズも空きメモリのサイズも最初から分かってて、ユーザーからの入力も限られてて、
そいつら全部自分で管理できる「恵まれた」環境でしか通用しないアプローチだよなそれ。
490: デフォルトの名無しさん [] 2016/04/19(火) 01:58:46.65 ID:fq3yh1do(1) AAS
レーシングゲームは出てくる車が決まっていてコースも決まっているから。
491: デフォルトの名無しさん [sage] 2016/04/19(火) 08:28:57.71 ID:YcewE61x(1) AAS
昨今はレースゲームでも汎用的なゲームエンジン使うことが多いから
その場合事前に寿命が決まってる前提の作りにはしていないと思うぞ
GDCとかGame Gemとかでも昔からフラグメンテーション対策を含む
メモリ管理の手法はいろいろ議論されているから調べてみるとよろし
492: デフォルトの名無しさん [sage] 2016/04/20(水) 12:56:58.01 ID:r07pzD8i(1) AAS
>>489
ハードリアルタイムなシステムならごく普通
って言うかそうでないと作れない
493
(1): デフォルトの名無しさん [sage] 2016/04/20(水) 13:09:41.53 ID:DLw9rf+F(1) AAS
>>486
ああいうFPSのオブジェクトは全部管理されてるし
gcなんか使ってないよ
494
(1): デフォルトの名無しさん [sage] 2016/04/20(水) 19:22:46.02 ID:bj66dBvK(1) AAS
>>493
フラグメンテーションの話だっての
1-
あと 226 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 0.023s