そのため、PDF 処理機能を提供するこの WCF サービスがあります。現在、プレーンなバイト配列 ( byte[]
) を受け入れて返していますが、これは、常にすべてをメモリに読み込んでいることを意味し、ストリームを処理する場合でも、それらをバイト配列に ToArray() する必要があります。問題は、メモリ不足の問題とヒープの断片化を引き起こしていることです。
あまり多くのメモリを使用しないように最適化するには、次の 2 つの選択肢があります。
- ストリームを使用します。魅力的ではありますが、PDF ツールキットで処理するためにディスクに永続化する必要があるかもしれません。また、バインディングの数が限られていること、および二重ストリーミングとパラメーターの数が制限されていることを考えると、これは非常に厄介な戦略でもあります。
- UNC ファイル パスをやり取りします。有望に思えますが、使用後に誰かがファイルをクリーンアップする必要があるため、状況が複雑になります。
リソース (メモリ、ネットワーク、ファイル システム) の使用を最適化するという点で、最良の結果を達成する代替手段はどれですか?