【发布时间】:2016-12-27 00:31:21
【问题描述】:
有时,让应用程序陷入糟糕的境地,看看它是如何响应的,这很有帮助。拔掉网线或拔掉电源之类的事情将向我展示我的应用程序的弹性以及我还有哪些工作要做。
为此,我试图找出在.Net 中强制OutOfMemoryException 的最快方法。在一个简单的控制台应用程序中执行此操作将允许我将此场景注入到正在运行的应用程序中。在处理OutOfMemoryExceptions 时显然还需要考虑其他一些事情(例如内存碎片以及垃圾收集器如何分配不同的代),但这对于本实验的范围并不重要。
更新
为了澄清问题的目的,重要的是要注意简单地抛出内存不足异常是没有帮助的,因为我想看看当内存压力增加时程序将如何反应。本质上,我想将 GC 激发到积极的收集模式,并监控这对性能的影响,直到进程因内存不足异常而死。
【问题讨论】:
-
您可能对old question of mine 感兴趣。
-
应用程序对断电的恢复能力如何?
-
@rotem 虽然没有万无一失的方法来处理 LossOfPowerException,但您可以采取一些措施来保护敏感数据(例如,不在客户端中缓存关键数据,更频繁地将数据写入存储等)
-
@MattRuwe 在这种情况下,
OutOfMemoryException可能不是该场景的最佳模拟。杀死Process可能更接近。 -
throw new OutOfMemoryException()
标签: .net