4D v14.3配列とメモリ |
||||||||||||||||||||||||
|
4D v14.3
配列とメモリ
|
配列型 | メモリ使用量の計算式 (バイト単位) |
ブール | (31+要素数)\8 |
日付 | (1+要素数) * 6 |
文字列 | (1+要素数) * (各テキストの合計サイズ) |
整数 | (1+要素数) * 2 |
倍長整数 | (1+要素数) * 4 |
ピクチャ | (1+要素数) * 4 + ピクチャサイズの合計 |
ポインタ | (1+要素数) * 16 |
実数 | (1+要素数) * 8 |
テキスト | (1+要素数) * (各テキストの合計サイズ) |
二次元 | (1+要素数) * 12 + 配列サイズの合計 |
注:
非常に大きな配列で作業する場合、メモリが一杯という状況を扱う最善の方法は、配列の作成をON ERR CALLで囲むことです。以下に例を示します:
` 大きな配列を作成する必要がある晩に一晩かけてバッチ操作を実行します。
` 夜間にエラーが発生する危険がないように、操作の始めに配列を作成して、
` この時点でエラーをテストします。
gError:=0 ` エラーなし状態にセット
ON ERR CALL("ERROR HANDLING") ` エラーをキャッチするメソッドをインストール
ARRAY STRING(63;asThisArray;50000) ` 非Unicodeモードで約3125K
ARRAY REAL(arThisAnotherArray;50000) ` 488K
ON ERR CALL("") ` これ以降は、エラー処理不要
If(gError=0)
` 配列を作ることができた
` そして、操作を続行できる
Else
ALERT("この操作はメモリ不足により続行ができません!")
End if
` これ以降は、配列は不要となる
CLEAR VARIABLE(asThisArray)
CLEAR VARIABLE(arThisAnotherArray)
ERROR HANDLING プロジェクトメソッドは以下のとおりです:
` ERROR HANDLING プロジェクトメソッド
gError:=Error ` エラーコードを返す
プロダクト: 4D
テーマ: 配列
ランゲージリファレンス ( 4D v14 R2)
ランゲージリファレンス ( 4D v14 R3)
ランゲージリファレンス ( 4D v14.3)
ランゲージリファレンス ( 4D v14 R4)
Inherited from : 配列とメモリ ( 4D v11 SQL Release 6)