- 1 名前:名前は開発中のものです。 [2022/05/22(日) 19:53:26.78 ID:923jZ1Ck.net]
- プログラマーがゲームを作る上で避けては通れないバグ、フラグメンテーション。
ファイルとメモリーのデータのやり取りが増えれば増えるほど発生して、 メモリーを圧迫して最後には発生原因不明のバグを発生させる恐怖のバグ。 そんなフラグメンテーションの対策を行うための雑談スレッドです。
- 2 名前:名前は開発中のものです。 mailto:sage [2022/05/22(日) 19:57:58.02 ID:U4CargQq.net]
- あ?よく聞こえないナ~
- 3 名前:名前は開発中のものです。 [2022/05/22(日) 20:01:14.90 ID:923jZ1Ck.net]
- Unityとかってフラグメンテーション起きね?
- 4 名前:名前は開発中のものです。 [2022/05/22(日) 20:08:04.58 ID:923jZ1Ck.net]
- 複雑なプログラムを組めば組むほどフラグメンテーション起きるから大変だよね?
で、みんなどうやって回避してる?
- 5 名前:名前は開発中のものです。 [2022/05/22(日) 20:33:49.45 ID:923jZ1Ck.net]
- malloc全面禁止が出来れば楽なんだがな
フラグメンテーションが起きようも無くなる まあ、簡単な話ではないけどな
- 6 名前:名前は開発中のものです。 [2022/05/22(日) 20:45:11.73 ID:923jZ1Ck.net]
- 最初にmallocした領域を最後まで使い続ける手もあるな
途中でreallocを使わなければ、どうって事もない話だ
- 7 名前:名前は開発中のものです。 [2022/05/22(日) 21:04:00.00 ID:923jZ1Ck.net]
- 要は、メモリーに隙間を空けなければ良いだけだしな
- 8 名前:名前は開発中のものです。 [2022/05/22(日) 21:08:32.45 ID:923jZ1Ck.net]
- 同じメモリーを余裕を持って取得し、最後まで使い回す
どのぐらいの余裕が必要かは考えれば出てくると思われる 例えば、TCP/IPのパケットの場合は、64kが最大だから、 このサイズでメモリーを取得して使い回せば良い
- 9 名前:名前は開発中のものです。 [2022/05/22(日) 21:15:30.04 ID:923jZ1Ck.net]
- 取得したメモリー領域をいちいち全部解放する方法もあるよな
これなら隙間の空きようも無い ただ、メモリーの取得方法や環境によっては、 取得した順番とは真逆に解放する必要があるケースがあり得るから注意する事
- 10 名前:名前は開発中のものです。 [2022/05/22(日) 21:17:24.33 ID:923jZ1Ck.net]
- >>5-9を組み合わせるだけでもわりと何とかなるよな
- 11 名前:名前は開発中のものです。 [2022/05/22(日) 21:25:59.87 ID:923jZ1Ck.net]
- 画像とかどう対処してる?
圧縮展開方法によっては対処できない場合ってない? 自前圧縮展開なら何とかなるかもしれんが。 ドット絵程度なら自分でツール作れるなら固定領域で何とかなりそうだが、 立ち絵使うとそうも言ってられなくね? グラボのドライバによっても色々と問題起きそうだし。 俺は一応、bmp使って何とかしてるけど。
- 12 名前:名前は開発中のものです。 [2022/05/22(日) 21:39:56.48 ID:923jZ1Ck.net]
- スクロールマップを諦めるだけでなんとなる方法はあるな
一画面マップのタイル置きと、大マップを組み合わせるとか アクションゲームならこれだけで十分色々と対処出来るし、 むしろ下手にスクロールさせるよりも凝った事が出来る
- 13 名前:名前は開発中のものです。 [2022/05/23(月) 01:17:29.52 ID:sMecdujG.net]
- フラグメンテーション、PythonやVB,C#でも起きるよ。どんな言語でも起きる。
ただ、同じ領域を別のデータが締める事が多いから、滅多な事は無いと思うが。
- 14 名前:名前は開発中のものです。 mailto:sage [2022/05/23(月) 04:07:24.97 ID:fslTs1bW.net]
- Resources.UnloadUnusedAssets();
- 15 名前:名前は開発中のものです。 mailto:sage [2022/05/23(月) 14:06:15 ID:GTTFE5IP.net]
- Unityでフラグなんちゃらは起きるのか?ググってもプラグイン側がSwitchに対応してないからぐらいで情報がない
ゲーム実行中にインスタンスを生成しまくる雑な仕様だとしても一瞬CPUスパイクが発生するので この時に断片化を阻止しているのでは。
- 16 名前:名前は開発中のものです。 [2022/05/24(火) 01:04:03.03 ID:XFFa0Abh.net]
- メモリーが動かない限り、フラグメンテーションは発生するよ
プログラムが原因不明の止まり方をするなら、発生していると見ていい 同じ時に同じように止まるのならともかく、止まる条件が不定期なら フラグメンテーション、止まる条件が定期的ならデータの初期化忘れを疑う
- 17 名前:名前は開発中のものです。 [2022/05/24(火) 01:05:23.03 ID:XFFa0Abh.net]
- プログラムが永久に止まったり落ちたりする条件の話な
- 18 名前:名前は開発中のものです。 [2022/05/24(火) 01:06:24.66 ID:XFFa0Abh.net]
- 普段はなんともないのに膨大なデータを扱うと起きるならまず間違いないな
- 19 名前:名前は開発中のものです。 mailto:sage [2022/05/24(火) 01:21:06.73 ID:trN/G1S8.net]
- GCのこととは違うんか?
フラグなんちゃら
- 20 名前:名前は開発中のものです。 [2022/05/24(火) 01:58:24.63 ID:XFFa0Abh.net]
- GCはガベージコレクションの略
GCを使えばフラグメンテーション(以下、断片化)は抑制出来る が、万能では無いんだよな メモリーを動かすGCがあれば良いのだが、 そこまで書いてあるGCは、滅多に無い 断片化というのは要するにメモリーが隙間だらけになるだけの話 プログラムやOSは隙間にメモリーを取得したり、 隙間に入らないメモリーだったら別の場所にメモリーを取得したりする結果、 断片化が発生する
- 21 名前:名前は開発中のものです。 mailto:sage [2022/05/27(金) 12:38:03.31 ID:aKAllit5.net]
- 何で同じ場所の数値変更をしないの?
- 22 名前:名前は開発中のものです。 mailto:sage [2022/05/27(金) 17:42:47.92 ID:EKiBJ3Ar.net]
- 面倒なプログラムを作りたくないからじゃね?
- 23 名前:名前は開発中のものです。 [2022/05/27(金) 18:18:20.02 ID:EKiBJ3Ar.net]
- unityとか何処でアセットがメモリーを取得して
フラグメンテーションの原因になるかが分からないから怖いんだよな。 dxlibはまだ単純なラッパだから分かるし、下手にメモリ取得しないから良いけど。
- 24 名前:名前は開発中のものです。 [2022/05/27(金) 18:20:56.78 ID:EKiBJ3Ar.net]
- STLとかも怖いよね?vector形式でメモリーを取得しまくって、領域を拡張しまくる人とか居るし。
- 25 名前:名前は開発中のものです。 mailto:sage [2022/05/27(金) 20:53:00.81 ID:E8yMtbkD.net]
- 最近、メモリの断片化のことを知って興奮してるのか知らないけど
unityでもメモリアロケーターのカスタマイズができるぞ
- 26 名前:名前は開発中のものです。 mailto:sage [2022/05/28(土) 06:49:30 ID:vLBM2CtI.net]
- メモリーの区分けが大雑把なシステムは良いんだが、細かいシステムだと大変やね
- 27 名前:名前は開発中のものです。 mailto:sage [2022/11/27(日) 06:36:37.04 ID:Ycxm7qQv.net]
- 今どきフラグメンテーションとかガーベジコレクションとか意識するような開発あるの?
- 28 名前:名前は開発中のものです。 mailto:sage [2022/11/27(日) 16:51:27.62 ID:9sD6qn95.net]
- Switch/PS4,5/XBox
- 29 名前:名前は開発中のものです。 mailto:sage [2023/03/25(土) 12:25:58.51 ID:L1+spewv.net]
- じいちゃんが犬を捨てに行ったら、犬が先に帰ってきた
- 30 名前:名前は開発中のものです。 mailto:sage [2023/08/20(日) 10:42:36.49 ID:3SlKXi6b.net]
- 豪華な朝ご飯を食べた
- 31 名前:名前は開発中のものです。 [2023/09/01(金) 09:14:20.72 ID:OU6y3ojL.net]
- >>0027
大規模なプログラムには関係あるよ
- 32 名前:名前は開発中のものです。 mailto:sage [2023/09/12(火) 18:39:47.06 ID:HQ7OXAvH.net]
- 大規模データベース使うとか細かい3DCGとかやると大変やね。
- 33 名前:過去ログ ★ [[過去ログ]]
- ■ このスレッドは過去ログ倉庫に格納されています
|

|