biz-Streamマニュアル よくあるご質問(FAQ) Excel出力 Excel生成時のbiz-Streamのメモリ使用量の指標を教えてください。

QExcel生成時のbiz-Streamのメモリ使用量の指標を教えてください。

A回答

1.biz-Streamのメモリ使用

biz-Streamでは、帳票を高速に出力するためExcel生成に必要なデータを一旦メモリ上にすべて保持いたします。
Excel出力では flush()ごとにページ単位を出力してメモリを解放することができず、close()を実行するまでデータを保持いたします。

2.メモリ使用量を増加させる要因

具体的な例を以下にご案内いたします。

  1. 帳票の複雑度
    biz-StreamのExcel出力機能では、<fo:table>の中に配置したテキストを出力する仕様です。 1行の中に<fo:table-cell>が多数あるとメモリ使用量が増加します。 さらにcellの属性値(枠線の指定、フォントの指定)などの情報が多いほどメモリ使用量も増加いたします。 加えて、出力する行数が増えるとそれに比例してメモリ使用量も増加いたします。
  2. データソース
    大量データの場合、全てのデータを1回の処理で1つのExcelファイルに出力しようとすると、メモリに保持するデータが膨大になりメモリ不足となる要因になります。
  3. 同時実行の多重度
    通常のWebアプリケーション等と同様に、同時実行の多重度等により処理時間が増加する事もあります。