我有一个应用程序,它通过将 HTML 转换为字节数组来将其转换为 PDF。但是,我观察到,当我的字节数组大小超过13 MB时,它给出:OutOfMemoryException
据我所知,我最多可以为 32 位机器中的变量分配 2GB 的空间,并且我还可以处理其他使用的变量。那么理想情况下我不应该缺乏记忆,不是吗?
另外,当我最初将字节数组大小声明为1 gb时,它不会给出错误,但是当它被分配数据时,数组的大小会根据数据的大小调整大小,当它超过13 gb时,它崩溃?
当我已经声明它可以容纳1gb内存时,为什么数组会调整大小?
* *编辑:
以下是导致错误的代码行:
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)