В моем приложении я пытаюсь вычислить, сколько HtmlAgilityPack
создает поток памяти данных при загрузке документов.
Например, если я загружаю HtmlDocument
в свою память, как проверить, какой размер одного документа, при выполнении кода ниже? Как я полагаю, он будет соответствовать размеру потока памяти, созданного для http-запроса -> result, я прав?
HtmlDocument doc = await web.LoadFromWebAsync("https://www.somefancywebsite.com/");
Каков размер памяти объекта doc
?
Мне не удалось найти подобные топи c на SO, и я извиняюсь, если это что-то очевидное. Я подозреваю, что я должен был преобразовать документ в какой-то другой формат, где легко я мог бы проверить объем его памяти? Должно ли это делать работу правильно? Или я должен взять это ToArray? Или подобный подход?
int memorySize = doc.ToString().Legth //size in bytes??
РЕДАКТИРОВАТЬ: в этой статье Я обнаружил, что каждая строка занимает 20+(n/2)*4
байтов, где n
это количество символов , Может быть, используя эту формулу?
РЕДАКТИРОВАТЬ: , поскольку это управляемый объект, я пробовал решения из здесь и здесь . К сожалению, я получаю исключение для doc
объекта:
System.Runtime.Serialization.SerializationException: введите 'HtmlAgilityPack.HtmlDocument' в сборке 'HtmlAgilityPack (...)
РЕДАКТИРОВАТЬ: на основе этого решения, я пытаюсь преобразовать doc.ToString()
, так как это в основном текстовый документ, который дает мне своего рода результат, но я не полностью удовлетворен с этим. Мне просто интересно, насколько я могу положиться на это решение и есть ли какие-либо альтернативы.