C# 如何检查使用HtmlAlityPack或任何其他文档创建的HtmlDocument的内存大小?

C# 如何检查使用HtmlAlityPack或任何其他文档创建的HtmlDocument的内存大小?,c#,html,html-agility-pack,memory-size,C#,Html,Html Agility Pack,Memory Size,在我的应用程序中,我试图计算加载文档时有多少HtmlAgilityPack创建了数据内存流 例如,如果我正在将HtmlDocument加载到内存中,在执行下面的代码时,如何验证单个文档的大小?我相信,它将匹配为http请求->结果创建的内存流大小,对吗 HtmlDocument doc = await web.LoadFromWebAsync("https://www.somefancywebsite.com/"); doc对象的内存大小是多少 我没能找到类似的话题,如果这是显而易见的,我很抱

在我的应用程序中,我试图计算加载文档时有多少
HtmlAgilityPack
创建了数据内存流

例如,如果我正在将
HtmlDocument
加载到内存中,在执行下面的代码时,如何验证单个文档的大小?我相信,它将匹配为http请求->结果创建的内存流大小,对吗

HtmlDocument doc = await web.LoadFromWebAsync("https://www.somefancywebsite.com/");
doc
对象的内存大小是多少

我没能找到类似的话题,如果这是显而易见的,我很抱歉。我怀疑,我应该将文档转换为其他格式,这样我就可以轻松地验证它的内存大小了?这样做是否正确?还是我应该把它带到Array?还是类似的方法

int memorySize = doc.ToString().Legth //size in bytes??
EDIT:在我发现的中,每个字符串需要
20+(n/2)*4个
字节,其中
n
是字符数量。也许用这个公式

编辑:因为它是托管对象,所以我尝试了和的解决方案。不幸的是,我在
doc
对象上遇到异常:

System.Runtime.Serialization.SerializationException:类型 程序集“HtmlAgilityPack”(…)中的“HtmlAgilityPack.HtmlDocument”


编辑:基于解决方案,我正在尝试转换
doc.ToString()
,因为它基本上是文本文档,这给了我某种结果,但我对此并不完全满意。我只是想知道我能在多大程度上依赖这个解决方案,以及是否有任何替代方案。

根据这一点,使用类
TestSize
,并调用其大小调整方法被视为一种安全的方法。这种方法似乎适用于大多数类型。然而,当尝试查找字符串的字节时,我似乎更适合使用它

System.Text.ASCIIEncoding.Unicode.GetByteCount(myString);
需要注意的是,体系结构(32位/64位)和C#版本可能使用不同的内存大小