我正在编写一个Web抓取应用程序,它使用代理为各种网站创建了大量并发HttpRequests。
这些网站大多数都启用了SSL。我的应用程序使用了大量奇怪的内存,所以我决定调查并发现GC没有收集SslStream
PinnableBufferCache
。
我已在ReadStreamBuffering
上停用WriteStreamBuffering
和HttpRequest
,将HttpRequestCachePolicy
设为NoCacheNoStore
并将KeepAlive
设为false
,但问题仍然存在,GC没有收集基础SslStream
缓存。
我无法发布我的代码示例,因为它的核心很大,并发模型提供代理和任务管理器来控制发出请求的并发抓取线程。但是我提供了一个解释我的问题的.NET内存分析器的截图