HSPポータル
サイトマップ お問い合わせ


HSPTV!掲示板


未解決 解決 停止 削除要請

2011
1002
ion変数の使用サイズについて4解決


ion

リンク

2011/10/2(Sun) 16:04:15|NO.41920

変数を作成する際、少しでもメモリの節約になるかと思い、
最初に使用する変数の総数分配列変数で指定しておき、
それをdup命令でクローン変数を作って使用しているのですが
これは実際のところメモリの節約になっているのでしょうか。
クローン変数を作った場合、その分余計にメモリを喰ってるだけなのでしょうか。
ふと疑問に思ったので質問してみました。どなたか詳しい方教えてください。

例:RPGで主人公達のステータス用変数を作る場合こんな感じに変数指定しています。
  最初にメンバーごとのミニデータベース型変数を作っているのは
  モジュールの外部命令にパラメータを渡す時の為です。
	#enum cons_HP=0
#enum cons_MP #enum cons_M_HP #enum cons_M_MP #enum cons_MAX #enum MEMBER_A=0 #enum MEMBER_B #enum MEMBER_C #enum MEMBER_MAX dim database, cons_MAX, MEMBER_MAX dup A_stat, database(0, MEMBER_A) dup A_HP, A_stat(cons_HP) dup A_MP, A_stat(cons_MP) dup A_M_HP, A_stat(cons_M_HP) dup A_M_HP, A_stat(cons_M_MP) dup B_stat, database(0, MEMBER_B) . .



この記事に返信する


info

リンク

2011/10/2(Sun) 16:59:23|NO.41923

なっていないはずです。

クローン変数とは C言語のポインタ変数と同じ物だと思います。
よって、クローン一つにつき、少なくとも 32 bit つまり 4 Byte使用しているはずです。



ひらまる

リンク

2011/10/2(Sun) 17:12:19|NO.41924

マクロならメモリを消費しないよ。

#define A_HP database( cons_HP, MEMBER_A )
でも毎回配列にアクセスするから処理速度が下がる上に、ファイル容量もかさむよ。
でもメモリは消費しないよ。メモリ消費と実行速度は相反するものだと思うよ。ようはバランスだよ(・ω・)



ion

リンク

2011/10/2(Sun) 21:57:23|NO.41930

>infoさん
>ひらまるさん
返信ありがとうございます。
やはりメモリの節約どころか逆に圧迫していたのですね…。
最初に挙げた例はメモリ云々以外にも管理のしやすさという点で今更変えられないのですが、
一時的に情報を格納する変数を
dim t,10 : dup t1,t(1) : dup t2,t(2) : dup tx,t(3) : dup ty,t(4)
の様に初期化していたのは
完全に無意味な事がわかったので修正したいと思います。ありがとうございました



ion

リンク

2011/10/2(Sun) 21:58:06|NO.41931

すみません、解決マークを付け忘れました



ONION software Copyright 1997-2021(c) All rights reserved.