[過去ログ]
C/C++ゲーム製作総合スレッド Part1 (1001レス)
C/C++ゲーム製作総合スレッド Part1 http://echo.5ch.net/test/read.cgi/gamedev/1337516528/
上
下
前次
1-
新
通常表示
512バイト分割
レス栞
抽出解除
必死チェッカー(本家)
(べ)
自ID
レス栞
あぼーん
このスレッドは過去ログ倉庫に格納されています。
次スレ検索
歴削→次スレ
栞削→次スレ
過去ログメニュー
229: 名前は開発中のものです。 [sage] 2012/06/03(日) 21:22:27.91 ID:Y5aEM5Jb >>226 そんな事実はない。VirtualAllocのがぎりぎりまでとれるのは事実だけど管理も全部自分でするはめになるぞ http://echo.5ch.net/test/read.cgi/gamedev/1337516528/229
230: 名前は開発中のものです。 [sage] 2012/06/03(日) 21:26:33.66 ID:Y5aEM5Jb >>228 いや、初期値はそれで合ってる。仮想メモリの上限がくるまでどんどん拡張される仕様 http://echo.5ch.net/test/read.cgi/gamedev/1337516528/230
239: 名前は開発中のものです。 [sage] 2012/06/03(日) 22:03:21.55 ID:Y5aEM5Jb >>233 実際やってみ。状況にもよるが数百Mぐらいは特に問題ないから http://echo.5ch.net/test/read.cgi/gamedev/1337516528/239
240: 名前は開発中のものです。 [sage] 2012/06/03(日) 22:27:01.07 ID:Y5aEM5Jb Win32の VirtualAlloc は仮想メモリから直接メモリを確保する機能で、 ページ単位の操作しかできないので細かい確保にはむかない。 100byte だけ欲しいと思っても 64kbとられてしまうので、 C++のオブジェクトの確保とかで使うとすごい無駄なことになる 静的なM単位の大容量データの確保用に使うのには向いてる HeapAlloc は仮想メモリから確保したメモリを、 さらに小分けに管理して割り当ててくれる。管理のオーバヘッドと 引き替えに細かいメモリを効率的に使える。 VC++ の malloc や new はこの HeapAlloc で実装されてるはず ただ、ヒープ系メモリはどうしても「断片化」がおこる。 合計ではメモリが余ってても、間に邪魔者がいると連続領域を確保できなくなる。 ゲームはわりとこの断片化をおこしやすい傾向があるので、 オブジェクトの寿命ごとにヒープを別グループで確保するのが 定番テクニックになる。C++ ではクラス単位で new を差し替えできるから、 そこで使うヒープを切り替えるようにする Win なら HeapAlloc を直接使って別ヒープを確保する形で new を実装するか、 あるいはVirtualAlloc したメモリに対して dlmalloc などの ヒープライブラリを使って実装することになる。 http://echo.5ch.net/test/read.cgi/gamedev/1337516528/240
245: 名前は開発中のものです。 [sage] 2012/06/03(日) 23:37:00.73 ID:Y5aEM5Jb >>241 メモリ確保失敗したら、基本続けるのは無理だろうから基本は即終了でいいんじゃないかと 全部解放してタイトルに戻るとかそういう工夫はしてもいいと思う >>242 Win32以降のGlobalAlloc/LocalAlloc はHeapAlloc のラッパー関数です。領域も malloc と同じはず GHNDすると再配置もしてくれてるからフラグメンテーションにならなかったってことではないかと。 そのかわりパフォーマンスはわりと落ちていたと推測します スクリプト系は、作りにもよるけど、案外あっさり フラグメンテーションの原因になるので、あらかじめ リソースとはヒープわけるのが上策ですね http://echo.5ch.net/test/read.cgi/gamedev/1337516528/245
メモ帳
(0/65535文字)
上
下
前次
1-
新
書
関
写
板
覧
索
設
栞
歴
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
AAサムネイル
Google検索
Wikipedia
ぬこの手
ぬこTOP
0.027s