|
2014/7/30(Wed) 18:44:43|NO.63209
返信が遅くなってしまい申し訳ないです。
Tetr@pod様
>>sdim a, 0x5EEEFFC8
なるほど、この方法で確認ができるのですね。
早速こちらの環境で実験したところ、
sdim a, 0x3bfdffc8
がギリギリでした。
4GBのメモリを積み、空きが1.8GBの状態で実験した結果、
だいたい1GBほどメモリが消費され、800MBほどが残っていました。
続いて
sdim a, 0x3bfdffc8
sdim b, 0x20000000
このコードも実行してみたところ、エラーが出ませんでした。
dim a,251625458
配列変数もこのサイズが限界のようです。
>>ノベルゲームエンジンでは、ファイルなどを一度に読み込まずに
>>必要になったとき(あるいはその少し前)に読み込み不要になり
>>次第メモリを解放するように作れば問題ないかと思います。
現在考えていますが、利便性を考えると読み込みと破棄の動作を別々にしたいと思っています。
そのため一時的には大きな容量が必要になってくるはずなので、注意していきたいと思います。
skyblue様
>>実質、メモリが許す限りの環境依存となっています。
確かに、Tetr@pod様の環境と私の環境では宣言できるサイズが異なるので、
実質的に環境依存かもしれません。
私の環境では1GB+500MB程度でシステムエラーが発生しているので、
もっと低スペックなパソコンだともっと低いかもしれないですね(そもそも動くかどうか心配ですが)
あり様
>>使い方に癖がありますが、モジュール変数を使うと
>>手動で変数の削除及び変数で使用したメモリの開放が可能
モジュール変数……ですか。意識していなかった分野です。
モジュール機能のドキュメントをひと通り読みましたが、これはローカル変数という認識でいいかと思います。
現在のところ、
#define deldim(%1) sdim %1,1
を使って要らなくなった変数を随時小さくしている次第ですが、
ローカル変数を用いれば完全に破棄することができそうですね。
極力変数を再利用したり、いろいろな方法でメモリを開放したり、
いろいろとあがいてみることにします。
皆様ほんとうにありがとうございました。
|