C# .NET4.6和GC冻结

C# .NET4.6和GC冻结,c#,garbage-collection,.net-4.6,C#,Garbage Collection,.net 4.6,在安装.NET4.6之后,我的一个项目的性能出现了严重问题。在以下情况下,当程序正在处理大量数据,并且在某个点分配了大约4G字节的大量内存时,该过程会停止响应,并且执行了大约90秒的程序,执行了30-40分钟。如果我尝试停止,正在调试的进程,VisualStudio也会冻结,并且没有显示线程调用堆栈。同时当连接到挂起的进程时,可以看到调用堆栈,这可以看到进程挂起的内存分配,堆栈如下 主线程的堆栈: WKS::gc_heap::allocate_in_older_generation clr.dl

在安装.NET4.6之后,我的一个项目的性能出现了严重问题。在以下情况下,当程序正在处理大量数据,并且在某个点分配了大约4G字节的大量内存时,该过程会停止响应,并且执行了大约90秒的程序,执行了30-40分钟。如果我尝试停止,正在调试的进程,VisualStudio也会冻结,并且没有显示线程调用堆栈。同时当连接到挂起的进程时,可以看到调用堆栈,这可以看到进程挂起的内存分配,堆栈如下

主线程的堆栈:

WKS::gc_heap::allocate_in_older_generation
clr.dll!WKS::gc_heap::allocate_in_older_generation()
clr.dll!WKS::gc_heap::plan_phase()
clr.dll!WKS::gc_heap::gc1()
clr.dll!WKS::gc_heap::garbage_collect()
clr.dll!WKS::GCHeap::GarbageCollectGeneration()
clr.dll!WKS::gc_heap::allocate_more_space() 
clr.dll!JIT_New() 
00007ffc1a87f061()
00007ffc1a87c2a0()
00007ffc1a87c3d8()
00007ffc189c8b3b()
WindowsBase.ni.dll!00007ffc75b917e3()    
[Frames below may be incorrect and/or missing, no symbols loaded for WindowsBase.ni.dll]    .
这个问题不是在没有.NET4.6的计算机上复制的。此外,如果我设置应用程序标志gcServer或从ANST内存分析器启动应用程序,则问题不会重现,这非常奇怪


可能有什么问题?

匹配吗?非常感谢,就是这个。它是哪个clr版本修复的?我在4.6.96.0中见过这样的堆栈,现在我看不出这个问题。我安装了.net Framework 4.6.1,mscorlib.dll的版本为4.6.1055.0。