メモリ要件
Aspose.Words は、さまざまな形式のドキュメントを処理するための幅広い機能を提供します。 Aspose.Words が処理またはレンダリングできるドキュメント ファイルの最大サイズに制限がないことに注意することが重要です。唯一の制限は、使用可能な RAM (メモリ) の量です。
Aspose.Words に必要なメモリの量
通常、Aspose.Words はメモリ内にドキュメントのモデルを構築するためにドキュメント サイズの数倍のメモリを必要とします。たとえば、ドキュメントのサイズが 1 MB の場合、Aspose.Words はメモリ内に Document Object Model (DOM) を構築するために 10 ~ 20 MB の RAM を必要とします。一部の形式は他の形式よりもコンパクトであるため、乗数は形式によって異なります。たとえば、DOCX は DOC および RTF よりもコンパクトであり、DOC は RTF よりもコンパクトです。
特定のドキュメント ファイルの処理中に Aspose.Words が実際に消費するメモリ量を正確に見積もる方法はありません。ご存知のとおり、.NET はデータをクラスに格納します。各クラス インスタンスは CLR の内部目的でメモリを使用します。そのため、段落や書式設定されたテキスト (1 文字で構成されている場合でも) は、DOM にロードした後に余分なメモリを必要とします。さらに、.NET ガベージ コレクター エンジンは複雑なアルゴリズムを使用してメモリ コレクションを実行する最適な時間を決定するため、実際のメモリ消費量を決定することが困難になります。
メモリ量の計算方法
2 つの文書を考えてみましょう。
- DOCX “A” ドキュメント – サイズ 0.35 MB (2,000 ページ)、テキストのみ
- DOCX “B” ドキュメント – サイズ 0.35 MB (わずか 1 ページ)、内部に PNG 画像が含まれています
ご存知のとおり、DOCX、ODT などの最新の形式の多くは単純な ZIP アーカイブです。したがって、次の計算アルゴリズムが得られます。
- 解凍します。解凍されたドキュメント「A」のサイズは 20 MB、ドキュメント「B」のサイズは 0.4 MB
- ドキュメントをモデルにロードします (Document Object Model – DOM を構築します)。 ※最初のドキュメント「A」のDOM作成には49MBのサイズが必要です
- 2 番目のドキュメント「B」の DOM を作成するのに必要なサイズはわずか 2 MB です。
- これらのドキュメントを PDF にレンダリングするために必要なメモリ量を測定します。この操作では、Aspose.Words には以下が必要です。
- ドキュメント「A」の場合は 294 MB
- ドキュメント「B」の場合は 7 MB
したがって、ご覧のとおり、入力ドキュメントのサイズに線形の依存性はありません。必要な RAM サイズに影響を与える可能性のある要因は数多くあります。ドキュメントの形式、その複雑さと構造、画像の数とその形式、その他多くの要因です。
メモリ乗数を最も正確に計算する方法
数千の実際のドキュメントを使った実験によると、通常、Aspose.Words はメモリ内にドキュメント モデルを構築し、フロー フォーマット間の変換、mail merge、解析、置換などの単純な操作を実行するために、平均的なドキュメント サイズの数倍のメモリを必要とします。乗数が 2 である場合もあれば、20 である場合もあります。
一部のドキュメントのレンダリング (固定ページ形式への変換)、フィールドの更新、ページの分割などのより複雑な操作には、Aspose.Words DOM にロードされたドキュメントによって割り当てられるメモリの 20 倍のリソースが必要です。
プロファイリングの結果が Aspose.Words のメモリ問題の可能性を示している場合は、すべての診断情報を添えて テクニカルサポート に連絡してください。