フラグメンテーション対策スレ at TECH
[2ch|▼Menu]
13:デフォルトの名無しさん
22/05/23 09:50:30.77 fHDd3cja.net
>取得したメモリー領域をいちいち全部解放する方法もあるよな
>これなら隙間の空きようも無い
これが実は一番のくせ者でな、ライブラリとかの都合で解放しきれないケースがある
で、広大な虫食い現象の発生原因になるとか

14:デフォルトの名無しさん
22/05/23 09:56:05.64 fHDd3cja.net
>>13
部分的にちょこっとメモリーを取得するとかが怖いよな
ユーザーにとっては便利なんだろうがプログラマにとっては厄介この上ない処理になる

15:デフォルトの名無しさん
22/05/23 09:59:00.65 fHDd3cja.net
プロフィールとか住所録は怖いね
電話番号を複数並べるとかの処理がこうなってる可能性はあり得る

16:デフォルトの名無しさん
22/05/23 10:13:43.44 fHDd3cja.net
>>13-15
構造体やクラス構造の基底クラスで部分的なポインタの使用禁止すれば、基本的には何とかなる

17:デフォルトの名無しさん
22/05/23 10:16:54.78 fHDd3cja.net
>>16
最近の言語仕様だとこれが防げないんだよな、怖い怖い
ガーベージコレクションが乗ってる言語で言語仕様を知らない人間が作ってるから

18:デフォルトの名無しさん
22/05/23 15:58:08 2I4BsGir.net
>>11
> 最初にmallocした領域を最後まで使い続ける

これしかないのでは

19:デフォルトの名無しさん
22/05/24 00:30:30 AfIH44Sa.net
昔と違って、すべてのデータを起動時に読み込んだり、
すべてのデータをリソースに放り込んだりが当たり前なんだよな、今は。
起動時に読み込まないのはセーブデータだけ。ゲームならこれで十分。
時代は変わったな。

20:デフォルトの名無しさん
22/05/24 01:11:11 AfIH44Sa.net
HDDの一瞬のアクセスで終わるしな
フロッピー時代の人達はどうやってメモリーを管理してたんだ?
少ないメモリーであれだけの事をやっていてよく落ちないよな

21:デフォルトの名無しさん
22/05/26 04:37:08.87 5/Uhy433.net
昔はメモリ領域の隅々までメモリマップで管理して、いつどこでどう使うかを決めてたんだよ
毎回コールドスタートで、常駐プログラムも全て素性のしれたものしか動かさないような環境だからこそできたわけだけど

22:デフォルトの名無しさん
22/05/27 11:28:28.43 S0cy91Tb.net
CP/M の overlay か

23:デフォルトの名無しさん
22/05/27 12:47:22.12 tzFUQxnX.net
質問
今どきのCPUなら仮想記憶があるから、メモリが連続してなくてもいいと思うんだけど、どう?

24:デフォルトの名無しさん
22/05/27 17:32:07.10 IBVx4FIE.net
仮想記憶って、ページングで容量増やすだけじゃね?

25:デフォルトの名無しさん
22/05/27 17:33:51.89 IBVx4FIE.net
しかも、スワップファイルして容量増やす代わりに速度遅くなるし

26:デフォルトの名無しさん
22/05/27 17:40:47.79 IBVx4FIE.net
容量増やしてフラグメンテーションを抑制してるだけの話だな

27:デフォルトの名無しさん
22/05/28 13:01:52.10 iLlMOWtZ.net
ノードツリーみたいなデータ型のものを扱うと仕方なさそうな
高層マンションみたいに初めから大量に枠を確保しておいて、空き部屋ができたら使う方式が現実解かな?

28:デフォルトの名無しさん
22/05/28 13:13:14.67 k/Sv/d4l.net
forで何回も回すスコープの中の変数ってフラグメンテーションの原因になるの?
例えば
nを1から100まで増やして
対応する番号の数値呼び出して
変数A = f(n)として100回処理した場合
変数Aは1フレームで100回別の場所に書き換えされるの?

29:デフォルトの名無しさん
22/05/28 14:17:44.57 R0+ouirM.net
最速でフラグメンテーション起こすプログラムとかある?

30:デフォルトの名無しさん
22/05/28 22:19:33.23 zgRSxl27.net
>>28
メモリー使ってればね。っていうかメモリー使わないんでは?
>>29
これなんかどうだ?
vector<vector<int>> vec;

31:デフォルトの名無しさん
22/05/28 22:23:46.10 zgRSxl27.net
>>29
あっそっか、大量にメモリの取得解放を別々のモジュールで行えば良いんだ。
で、その間に嫌がらせみたいに小さなメモリー取得をする処理をどっちにも入れる

32:デフォルトの名無しさん
22/05/29 12:08:45.89 au8Lw3/M.net
IEやfirefoxやChromeを沢山起動させろ

33:デフォルトの名無しさん
22/05/29 13:18:08.42 azJHOMIC.net
それってもうウイルスだね


最新レス表示
スレッドの検索
類似スレ一覧
話題のニュース
おまかせリスト
▼オプションを表示
暇つぶし2ch

453日前に更新/7752 Bytes
担当:undef