[過去ログ] フラグメンテーション対策雑談スレ (32レス)
1-

このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
1: 2022/05/22(日)19:53 ID:923jZ1Ck(1/11) AAS
プログラマーがゲームを作る上で避けては通れないバグ、フラグメンテーション。
ファイルとメモリーのデータのやり取りが増えれば増えるほど発生して、
メモリーを圧迫して最後には発生原因不明のバグを発生させる恐怖のバグ。

そんなフラグメンテーションの対策を行うための雑談スレッドです。
2: 2022/05/22(日)19:57 ID:U4CargQq(1) AAS
あ?よく聞こえないナ~
3: 2022/05/22(日)20:01 ID:923jZ1Ck(2/11) AAS
Unityとかってフラグメンテーション起きね?
4: 2022/05/22(日)20:08 ID:923jZ1Ck(3/11) AAS
複雑なプログラムを組めば組むほどフラグメンテーション起きるから大変だよね?
で、みんなどうやって回避してる?
5
(1): 2022/05/22(日)20:33 ID:923jZ1Ck(4/11) AAS
malloc全面禁止が出来れば楽なんだがな
フラグメンテーションが起きようも無くなる
まあ、簡単な話ではないけどな
6
(1): 2022/05/22(日)20:45 ID:923jZ1Ck(5/11) AAS
最初にmallocした領域を最後まで使い続ける手もあるな
途中でreallocを使わなければ、どうって事もない話だ
7
(1): 2022/05/22(日)21:04 ID:923jZ1Ck(6/11) AAS
要は、メモリーに隙間を空けなければ良いだけだしな
8
(1): 2022/05/22(日)21:08 ID:923jZ1Ck(7/11) AAS
同じメモリーを余裕を持って取得し、最後まで使い回す
どのぐらいの余裕が必要かは考えれば出てくると思われる

例えば、TCP/IPのパケットの場合は、64kが最大だから、
このサイズでメモリーを取得して使い回せば良い
9
(1): 2022/05/22(日)21:15 ID:923jZ1Ck(8/11) AAS
取得したメモリー領域をいちいち全部解放する方法もあるよな
これなら隙間の空きようも無い

ただ、メモリーの取得方法や環境によっては、
取得した順番とは真逆に解放する必要があるケースがあり得るから注意する事
10: 2022/05/22(日)21:17 ID:923jZ1Ck(9/11) AAS
>>5-9を組み合わせるだけでもわりと何とかなるよな
11: 2022/05/22(日)21:25 ID:923jZ1Ck(10/11) AAS
画像とかどう対処してる?
圧縮展開方法によっては対処できない場合ってない?
自前圧縮展開なら何とかなるかもしれんが。
ドット絵程度なら自分でツール作れるなら固定領域で何とかなりそうだが、
立ち絵使うとそうも言ってられなくね?
グラボのドライバによっても色々と問題起きそうだし。
俺は一応、bmp使って何とかしてるけど。
12: 2022/05/22(日)21:39 ID:923jZ1Ck(11/11) AAS
スクロールマップを諦めるだけでなんとなる方法はあるな
一画面マップのタイル置きと、大マップを組み合わせるとか
アクションゲームならこれだけで十分色々と対処出来るし、
むしろ下手にスクロールさせるよりも凝った事が出来る
13: 2022/05/23(月)01:17 ID:sMecdujG(1) AAS
フラグメンテーション、PythonやVB,C#でも起きるよ。どんな言語でも起きる。
ただ、同じ領域を別のデータが締める事が多いから、滅多な事は無いと思うが。
14: 2022/05/23(月)04:07 ID:fslTs1bW(1) AAS
Resources.UnloadUnusedAssets();
15: 2022/05/23(月)14:06 ID:GTTFE5IP(1) AAS
Unityでフラグなんちゃらは起きるのか?ググってもプラグイン側がSwitchに対応してないからぐらいで情報がない
ゲーム実行中にインスタンスを生成しまくる雑な仕様だとしても一瞬CPUスパイクが発生するので
この時に断片化を阻止しているのでは。
16: 2022/05/24(火)01:04 ID:XFFa0Abh(1/4) AAS
メモリーが動かない限り、フラグメンテーションは発生するよ
プログラムが原因不明の止まり方をするなら、発生していると見ていい
同じ時に同じように止まるのならともかく、止まる条件が不定期なら
フラグメンテーション、止まる条件が定期的ならデータの初期化忘れを疑う
17: 2022/05/24(火)01:05 ID:XFFa0Abh(2/4) AAS
プログラムが永久に止まったり落ちたりする条件の話な
18: 2022/05/24(火)01:06 ID:XFFa0Abh(3/4) AAS
普段はなんともないのに膨大なデータを扱うと起きるならまず間違いないな
19: 2022/05/24(火)01:21 ID:trN/G1S8(1) AAS
GCのこととは違うんか?
フラグなんちゃら
20: 2022/05/24(火)01:58 ID:XFFa0Abh(4/4) AAS
GCはガベージコレクションの略
GCを使えばフラグメンテーション(以下、断片化)は抑制出来る
が、万能では無いんだよな

メモリーを動かすGCがあれば良いのだが、
そこまで書いてあるGCは、滅多に無い

断片化というのは要するにメモリーが隙間だらけになるだけの話
プログラムやOSは隙間にメモリーを取得したり、
省2
21: 2022/05/27(金)12:38 ID:aKAllit5(1) AAS
何で同じ場所の数値変更をしないの?
22: 2022/05/27(金)17:42 ID:EKiBJ3Ar(1/3) AAS
面倒なプログラムを作りたくないからじゃね?
23: 2022/05/27(金)18:18 ID:EKiBJ3Ar(2/3) AAS
unityとか何処でアセットがメモリーを取得して
フラグメンテーションの原因になるかが分からないから怖いんだよな。
dxlibはまだ単純なラッパだから分かるし、下手にメモリ取得しないから良いけど。
24: 2022/05/27(金)18:20 ID:EKiBJ3Ar(3/3) AAS
STLとかも怖いよね?vector形式でメモリーを取得しまくって、領域を拡張しまくる人とか居るし。
25: 2022/05/27(金)20:53 ID:E8yMtbkD(1) AAS
最近、メモリの断片化のことを知って興奮してるのか知らないけど
unityでもメモリアロケーターのカスタマイズができるぞ
26: 2022/05/28(土)06:49 ID:vLBM2CtI(1) AAS
メモリーの区分けが大雑把なシステムは良いんだが、細かいシステムだと大変やね
27: 2022/11/27(日)06:36 ID:Ycxm7qQv(1) AAS
今どきフラグメンテーションとかガーベジコレクションとか意識するような開発あるの?
28: 2022/11/27(日)16:51 ID:9sD6qn95(1) AAS
Switch/PS4,5/XBox
29: 2023/03/25(土)12:25 ID:L1+spewv(1) AAS
じいちゃんが犬を捨てに行ったら、犬が先に帰ってきた
30: 2023/08/20(日)10:42 ID:3SlKXi6b(1) AAS
豪華な朝ご飯を食べた
31: 2023/09/01(金)09:14 ID:OU6y3ojL(1) AAS
>>0027
大規模なプログラムには関係あるよ
32: 2023/09/12(火)18:39 ID:HQ7OXAvH(1) AAS
大規模データベース使うとか細かい3DCGとかやると大変やね。
1-
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 0.116s*