Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/328.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 使用System.Threading.ReaderWriterCount获取内存不足异常_C#_Asp.net_Out Of Memory - Fatal编程技术网

C# 使用System.Threading.ReaderWriterCount获取内存不足异常

C# 使用System.Threading.ReaderWriterCount获取内存不足异常,c#,asp.net,out-of-memory,C#,Asp.net,Out Of Memory,我有一个asp.net应用程序,它在DotNetNuke上运行,在负载下我们偶尔会出现内存不足异常 我有个垃圾堆把它装进了windbg 世界末日!dumpheap-stat是 1192a588 88684 2128416 AutoMapper.MappingEngine 79333594 9482 2266348 System.Byte[] 134b0034 88695 2838240 System.EventHandler`1[[AutoMap

我有一个asp.net应用程序,它在DotNetNuke上运行,在负载下我们偶尔会出现内存不足异常

我有个垃圾堆把它装进了windbg

世界末日!dumpheap-stat是

1192a588    88684      2128416 AutoMapper.MappingEngine
79333594     9482      2266348 System.Byte[]
134b0034    88695      2838240 System.EventHandler`1[[AutoMapper.TypeMapCreatedEventArgs, AutoMapper]]
13d8703c    88684      4611568 System.Collections.Generic.Dictionary`2[[Castle.DynamicProxy.Generators.CacheKey, AutoMapper],[System.Type, mscorlib]]
13d86dc8    88684      4611568 Castle.DynamicProxy.ModuleScope
13d865bc    88684      4611568 System.Collections.Generic.Dictionary`2[[AutoMapper.Internal.TypePair, AutoMapper],[AutoMapper.IObjectMapper, AutoMapper]]
79327434    88703      4612556 System.Collections.Generic.Dictionary`2[[System.String, mscorlib],[System.Int32, mscorlib]]
6c38e4e4    88684      5675776 System.Threading.ReaderWriterLockSlim
79330b24    87736      6458012 System.String
000d9c88      129     24186884      Free
793042f4   221202    101117016 System.Object[]
6c38e4a0 22703104    544874496 System.Threading.ReaderWriterCount
我找不到有关System.Threading.ReaderWriterCount的更多信息,因为这似乎是问题所在

可能的原因是什么?或者失败了,下一步最好的解决方法是什么


根据给定答案中的指针,我查看了ReaderWriterLockSlim。我并没有直接使用它,但我看到它有88684个实例,更深入地挖掘,我看到很多类都有这么多的实例,指向AutoMapper.MappingEngine。这应该是一个单例,所以我已经查看了它的创建位置。我怀疑这是DI容器,并对其进行了一些更改,以查看它是否有帮助

ReaderWriterLockSlim
在内存占用方面不是一个便宜的类-这可能是您的
ReaderWriterCount
实例激增的原因。有关反射器的详细信息,请参阅

你能减少这个类的使用吗?可能并非所有锁都需要读/写锁,简单的
互斥锁
/
锁()
可以工作吗


还要注意的是,这个类是IDisposable-也许您在使用完它们之后没有
Dispose()
-ing它们?

谢谢,但奇怪的是我没有使用ReaderWriterLockSlim,至少在我的任何代码中都没有。我确实使用LINQtoSQL和Oracle.DataAccess。有什么想法可以使用它,或者我如何找到它吗?@baralong-你需要像Visual Studio 2010(也是早期版本)中的.Net对象跟踪这样的东西:我有几个类导致了这个问题。他们正在创建映射引擎的额外实例,还有其他不应该保留的类。我最终将一个子类与一个服务(它维护了一个引用)解耦,然后可以对该服务进行垃圾收集并释放内存。