HtmlAgilityPack问题

ratooner 2019-03-17 02:01:21
在使用HtmlAgilityPack解释html的时候遇到类型为“System.OutOfMemoryException”的异常。程序自动退出,怀疑文件过大,请问各位大虾有啥好办法解决啊?
...全文
189 6 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
不用说什么“2G”,你给我找一个20M的 html 文件出来我看看是啥啊? 如果有问题,还是首先要自己提供明白的资料。
  • 打赏
  • 举报
回复
开国际玩笑!你解析了 2G 多大小的一个 html 文件?
ratooner 2019-03-17
  • 打赏
  • 举报
回复
引用 1 楼 shijies的回复:
解析小文件没有这样的现象?
解析小文件正常,大文件就老是报错
shijies 2019-03-17
  • 打赏
  • 举报
回复
避免内存溢出的几点要素 如果要创建数组,请确保其大小正确。 确保有足够的内存用于内部用途和新的托管对象。 如果您正在 .NET Compact Framework 上进行编程,当没有足够的内存可用于内部用途或新的托管对象时,公共语言运行库会引发此异常。要避免此异常,应避免编写占用 64KB 或更多内存的大方法。 过多的托管内存使用量通常由以下因素造成: 1.将大型数据集读入内存中。 2.创建过多的缓存条目。 3.上载或下载大文件。 4.在分析文件时过多地使用正则表达式或字符串。 5.过多的视图状态。 6.会话状态中有过多的数据或者会话过多。 7.当对 COM 对象调用一个方法,并且该方法返回包含安全数组(大小不固定的数组)的用户定义类型时,可能引发此异常,并附带一条额外的消息“存储空间不足,无法完成此操作”。这是因为 .NET Framework 无法封送带有安全数组类型的结构字段。
shijies 2019-03-17
  • 打赏
  • 举报
回复
32位操作系统的寻址空间是4G,其中有2G被操作系统占用,也就是说留给用户进程的内存只有2G(其中还要扣除程序加载时映像占用的部分空间,一般只有1.6G~1.8G左右可以使用)。 如果进程运行中需要申请内存,而操作系统无法为其分配内存空间,则会产生内存不足的异常,在.net中为System.OutOfMemoryException(The exception that is thrown when there is not enough memory tocontinue the execution of a program.)。 虽然最终的表现都为OutOfMemoryException,但其产生的原因可能是不一样的,动手解决此问题之前需要先对进程当前内存的使用状态进行分析,找出正确的原因,才能对症下药。
shijies 2019-03-17
  • 打赏
  • 举报
回复
解析小文件没有这样的现象?

111,094

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • AIGC Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧