Memory management 内存不足异常后循环CLR?

Memory management 内存不足异常后循环CLR?,memory-management,clr,out-of-memory,Memory Management,Clr,Out Of Memory,使用非常大的内存文件时,可能会发生OutOfMemoryException。在生产中发生这种情况时,所有.NET应用程序都会崩溃,这一定是因为它们共享相同的CLR空间。因为我不知道如何“回收”CLR,我最终重新启动了服务器 在VS2010调试期间发生这种情况时,运行的所有其他.NET内容也会失败,但VS2010本身不会。然而,由于我不明白如何“回收”CLR,我最终在工作站上重新启动 如何“回收”CLR内存空间?在运行为.NET Framework(非IIS)编写的Win32服务的服务器上进行回收

使用非常大的内存文件时,可能会发生OutOfMemoryException。在生产中发生这种情况时,所有.NET应用程序都会崩溃,这一定是因为它们共享相同的CLR空间。因为我不知道如何“回收”CLR,我最终重新启动了服务器

在VS2010调试期间发生这种情况时,运行的所有其他.NET内容也会失败,但VS2010本身不会。然而,由于我不明白如何“回收”CLR,我最终在工作站上重新启动

如何“回收”CLR内存空间?在运行为.NET Framework(非IIS)编写的Win32服务的服务器上进行回收怎么样


谢谢。

循环CLR需要退出并重新运行进程。您可以调用GC.Collect强制GC优化其当前使用的内存;但就它而言,有些东西需要这种内存,而不能只是“循环”它。

不清楚为什么要修改它。在进行大数据操作时,OOME是一个真正的问题,当它发生时,使用CLR的一切(例如服务器上的所有.NET Win32服务)都会消失。知道如何在生产和开发中处理it是一个真正的问题。什么是“过程”?所有.NET应用程序共享相同的CLR。在services.msc中,我没有看到任何标记为“CLR进程”的内容。我还检查了组件服务,与IIS不同,我没有看到可以停止/启动的清晰“CLR环境”。@Snowy是否共享相同的CLR?这是胡说八道,因为每个进程都拥有自己的内存,并且必须独立加载CLR,这也是胡说八道,因为在任何给定的.NET应用程序都可以使用特定版本的情况下,可以安装多个版本的CLR。