首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >CookieContainer内存泄漏

CookieContainer内存泄漏
EN

Stack Overflow用户
提问于 2018-11-21 20:48:17
回答 1查看 219关注 0票数 0

我看到一个小内存泄漏,随着时间的推移,这个应用程序的CPU使用量逐渐增加,这个应用程序使用静态HttpClient定期访问不同的urls,这些urls返回set头。这些问题通过在UseCookies上设置HttpClientHandler = false来解决。这导致我研究了CookieContainer,我发现它维护了域的哈希表(m_domaintable),并为每个域维护了一个排序路径列表(m_list)。因此,即使基于容量和PerDomainCapacity正确地删除了cookie,内存和cpu的使用也会随着时间的推移而增加,因为这些集合会随着每一个新的域/路径被击中而增长。下面有一些例子显示内存泄漏。

第一个示例:为许多不同的域添加cookie

代码语言:javascript
复制
var cookieContainer = new CookieContainer();
for (int i = 0; i < 10000; i++)
{
    cookieContainer.Add(new Cookie("name1", "value1", "/", $"test{i}.com"));
}

第二个示例:为具有不同路径的相同域添加cookie

代码语言:javascript
复制
var cookieContainer = new CookieContainer();
for (int i = 0; i < 10000; i++)
{
    cookieContainer.Add(new Cookie("name1", "value1", $"/{i}", "test.com"));
}

在使用HttpClient/HttpClientHandler/CookieContainer时,是否遗漏了什么?文档指出,HttpClient应该在应用程序的整个生命周期中被重用,但这意味着CookieContainer也将被重用,并且这些集合将继续增长。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-11-29 17:40:08

有一个CookieContainer错误导致了这个问题:https://github.com/dotnet/corefx/issues/33712

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53420250

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档