[過去ログ]
GCは失敗。メモリは自分で管理せよ! その2©2ch.net (720レス)
GCは失敗。メモリは自分で管理せよ! その2©2ch.net http://mevius.5ch.net/test/read.cgi/tech/1447856699/
上
下
前
次
1-
新
通常表示
512バイト分割
レス栞
このスレッドは過去ログ倉庫に格納されています。
次スレ検索
歴削→次スレ
栞削→次スレ
過去ログメニュー
470: デフォルトの名無しさん [] 2016/04/18(月) 15:56:44.18 ID:kcE0qDSU >>469 昔、C/C++を駆使して日本が誇るスパコン京に投入するタスクセットを書き上げたのだが 実行するとどうも性能が出ない。 色々調べた結果、どうやらメモリーが断片化していることが分かった。 そこで多大な投資を行いJavaで書き直したらなんと100倍も性能が上がったのです! これが>>468さんの経験してきたことなんです。 http://mevius.5ch.net/test/read.cgi/tech/1447856699/470
471: デフォルトの名無しさん [sage] 2016/04/18(月) 16:30:17.23 ID:BDPQ12Es 自前のメモリ管理が超下手くそなだけやろ 修業して出直してこいや http://mevius.5ch.net/test/read.cgi/tech/1447856699/471
472: デフォルトの名無しさん [sage] 2016/04/18(月) 16:37:09.21 ID:OvHIqTOi 自慢になってないような http://mevius.5ch.net/test/read.cgi/tech/1447856699/472
473: デフォルトの名無しさん [sage] 2016/04/18(月) 16:44:52.62 ID:9yQABY6F ゲームだとフラグメント問題になること多いよ ゲーム専用機なら特に 最近は特にオープンワールドが当たり前になってるけど あれストリーミングでどんどんメモリ置き換えていくしね http://mevius.5ch.net/test/read.cgi/tech/1447856699/473
474: デフォルトの名無しさん [sage] 2016/04/18(月) 16:47:31.98 ID:/wa5LIjH jemallocのようなモダンなmalloc実装使えば良かったのでは。 http://mevius.5ch.net/test/read.cgi/tech/1447856699/474
475: デフォルトの名無しさん [sage] 2016/04/18(月) 17:47:00.91 ID:IBBVu28x ゲーム専用機でフラグメンテーションおこすとか開発者としての適性を疑われても不思議ではない。 オブジェクトの寿命管理すらしないのか? http://mevius.5ch.net/test/read.cgi/tech/1447856699/475
476: デフォルトの名無しさん [sage] 2016/04/18(月) 18:51:08.61 ID:RPQ9NKJO メモリのフラグメンテーションをC/C++でコントロールする方法ってあるの? mallocの実装頼りじゃなく。 http://mevius.5ch.net/test/read.cgi/tech/1447856699/476
477: デフォルトの名無しさん [sage] 2016/04/18(月) 19:05:27.63 ID:OvHIqTOi mallocの挙動がわかってれば、ある程度は・・・・ http://mevius.5ch.net/test/read.cgi/tech/1447856699/477
478: デフォルトの名無しさん [sage] 2016/04/18(月) 19:14:30.71 ID:OvHIqTOi 細かくメモリ要求するから、下回りで時間がかかる メモリ分断されてもオンメモリでの検索はさほど時間がかからない (空きができても、そこに入らないときに) http://mevius.5ch.net/test/read.cgi/tech/1447856699/478
479: デフォルトの名無しさん [sage] 2016/04/18(月) 19:15:14.97 ID:9yQABY6F >>475 フラグメンテーションって何かわかってないでしょ? 寿命管理だけでは解決できないよ http://mevius.5ch.net/test/read.cgi/tech/1447856699/479
480: デフォルトの名無しさん [sage] 2016/04/18(月) 19:21:39.69 ID:IBBVu28x 寿命管理で解決できないとか、フラグメンテーションがどういう現象か分かっているの? 汎用の寿命管理APIみたいなのを使うとか言うのと勘違いでもしている? http://mevius.5ch.net/test/read.cgi/tech/1447856699/480
481: デフォルトの名無しさん [sage] 2016/04/18(月) 20:02:22.75 ID:3yZKjOEp >>480 おいおい・・ この場合寿命を管理できないってのはgiven conditionとして考えないと そりゃ寿命があらかじめわかってるなら苦労しないっての 大規模なプログラムでそんな恵まれた状況は例外的だよ http://mevius.5ch.net/test/read.cgi/tech/1447856699/481
482: デフォルトの名無しさん [sage] 2016/04/18(月) 20:57:42.92 ID:IBBVu28x 専用ゲーム機上のゲームだよ。 リソースが逼迫したら何を優先するかの戦略も含めてほぼ理想的なgiven conditionだろうに。 ユーザーの行動による不確定性も全てコントロール下にあるだろうに。 http://mevius.5ch.net/test/read.cgi/tech/1447856699/482
483: デフォルトの名無しさん [sage] 2016/04/18(月) 21:13:59.16 ID:RPQ9NKJO >>482 専用ゲーム機と普通のPCの1アプリケーションとで何が違うのか。mallocも使わないってこと? NoGC, 各GCでメモリ空間がどう使われるかを視覚化 ttps://spin.atomicobject.com/2014/09/03/visualizing-garbage-collection-algorithms/ 黒: 未使用 灰: 確保 緑: 読み込み 黄: 書き込み 赤: GC用のアクセス(参照カウンタ、マーク用ビットetc) 緑と黄は時間経過で退色していく メモリフラグメンテーションという観点から見ると、コピー型GCが綺麗。 http://mevi
us.5ch.net/test/read.cgi/tech/1447856699/483
484: デフォルトの名無しさん [sage] 2016/04/18(月) 21:15:59.31 ID:3yZKjOEp まぁテトリスとかならその程度の理解でいいんじゃない?w http://mevius.5ch.net/test/read.cgi/tech/1447856699/484
485: デフォルトの名無しさん [] 2016/04/18(月) 21:33:24.92 ID:kcE0qDSU Javaの寿命管理APIは最強ですな。 http://mevius.5ch.net/test/read.cgi/tech/1447856699/485
486: デフォルトの名無しさん [sage] 2016/04/18(月) 21:49:39.41 ID:9yQABY6F >>482 GTAみたいなゲーム考えてみ? あれ全てオブジェクトの寿命を事前に決められると思う? 原理的には不可能じゃないだろうがそんな職人的な作りしてたら開発に10年かかるわw http://mevius.5ch.net/test/read.cgi/tech/1447856699/486
487: デフォルトの名無しさん [sage] 2016/04/18(月) 21:56:15.95 ID:IBBVu28x 普通のmallocで足りるならそれでもいいけど。 基本メモリ容量ギリギリまで使うから、最初に描画、ゲーム内部状態、音声、ディスクキャッシュなどでどのくらい使うか決めておく。 終始一貫して静的に決めるのが楽だけど、場合によっては場面ごとに配分を切り替えたりする。 で、例えば広いマップ上を自由に動き回るようなゲームだと、マップを複数のパーツに分割して、詳細モデルから簡易モデルまで用意する。 http://mevius.5ch.net/test/read.cgi/tech/1447856699/487
488: デフォルトの名無しさん [sage] 2016/04/18(月) 22:12:01.61 ID:3yZKjOEp ゲームプログラムとかならメモリ確保は直接システムコール呼び出して ページ単位でアロケートするのが定石 必要ならmspaceとかインスタンスベースのヒープを自分で作る http://mevius.5ch.net/test/read.cgi/tech/1447856699/488
489: デフォルトの名無しさん [sage] 2016/04/19(火) 01:49:46.30 ID:KVIhh3Hm 使用できるメモリのサイズも空きメモリのサイズも最初から分かってて、ユーザーからの入力も限られてて、 そいつら全部自分で管理できる「恵まれた」環境でしか通用しないアプローチだよなそれ。 http://mevius.5ch.net/test/read.cgi/tech/1447856699/489
490: デフォルトの名無しさん [] 2016/04/19(火) 01:58:46.65 ID:fq3yh1do レーシングゲームは出てくる車が決まっていてコースも決まっているから。 http://mevius.5ch.net/test/read.cgi/tech/1447856699/490
491: デフォルトの名無しさん [sage] 2016/04/19(火) 08:28:57.71 ID:YcewE61x 昨今はレースゲームでも汎用的なゲームエンジン使うことが多いから その場合事前に寿命が決まってる前提の作りにはしていないと思うぞ GDCとかGame Gemとかでも昔からフラグメンテーション対策を含む メモリ管理の手法はいろいろ議論されているから調べてみるとよろし http://mevius.5ch.net/test/read.cgi/tech/1447856699/491
492: デフォルトの名無しさん [sage] 2016/04/20(水) 12:56:58.01 ID:r07pzD8i >>489 ハードリアルタイムなシステムならごく普通 って言うかそうでないと作れない http://mevius.5ch.net/test/read.cgi/tech/1447856699/492
493: デフォルトの名無しさん [sage] 2016/04/20(水) 13:09:41.53 ID:DLw9rf+F >>486 ああいうFPSのオブジェクトは全部管理されてるし gcなんか使ってないよ http://mevius.5ch.net/test/read.cgi/tech/1447856699/493
494: デフォルトの名無しさん [sage] 2016/04/20(水) 19:22:46.02 ID:bj66dBvK >>493 フラグメンテーションの話だっての http://mevius.5ch.net/test/read.cgi/tech/1447856699/494
メモ帳
(0/65535文字)
上
下
前
次
1-
新
書
関
写
板
覧
索
設
栞
歴
あと 226 レスあります
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
AAサムネイル
Google検索
Wikipedia
ぬこの手
ぬこTOP
1.435s*