[表示 : 全て 最新50 1-99 2ch.scのread.cgiへ]
Update time : 07/23 21:28 / Filesize : 6 KB / Number-of Response : 34
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

フラグメンテーション対策雑談スレ



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 名前:過去ログ ★ [[過去ログ]]
■ このスレッドは過去ログ倉庫に格納されています






[ 新着レスの取得/表示 (agate) ] / [ 携帯版 ]

次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧](*・∀・)<6KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef