HTML をバイト配列に変換して PDF に変換するアプリケーションがあります。ただし、バイト配列のサイズが13 MBを超えると、次のようになります。OutOfMemoryException
私の知る限り、32 ビット マシンの変数には最大 2GB を割り当てることができ、使用されている他の変数も破棄します。なら、理想的には記憶力が落ちないほうがいいですよね?
さらに、バイト配列のサイズを最初に1 gbとして宣言すると、エラーは発生しませんが、データが割り当てられると、配列のサイズはデータのサイズに従ってサイズ変更され、 13 gb を超えると、それはクラッシュしますか?
1 GB のメモリを保持するように既に宣言しているのに、配列のサイズが変更されるのはなぜですか?
* *編集:
以下は、エラーの原因となる私のコード行です。
objpage.Layout(html1); //html1 holds my huge full HTML which is of approx 5.5k word doc //pages
pdfBuffer = new byte[1073741824]; //declare the byte array of size 1 gb,no error here. //Note, i just added this declaration, this is not the cause of the problem, it wasn't //initially there
pdfBuffer = document1.WriteToMemory(); //This is my API method of the third party tool //which converts pdf document object to byte array. This line is where the error comes (my //array of 1 GB gets resized to 13+ MB)