gpt4 book ai didi

.net - 如何在不耗尽所有系统内存的情况下使 .NET 进程耗尽内存

转载 作者:行者123 更新时间:2023-12-03 02:11:11 25 4
gpt4 key购买 nike

问题很简单我有一个流程,对一些 xml 文件进行 ETL。我们开始获取非常大的 xml 文件,并且我开始遇到 OutOfMemoryExceptions。

修复过程相对简单。但是,我想对我的 NUnit 套件进行单元测试,以确保该进程继续能够处理非常大的文件。然而,实际上,我的开发工作站上的内存不足会降低我的机器的速度,并且非常耗时。在版本控制中存储巨大的测试文件也是一个坏主意。如果我可以人为地限制进程、线程或应用程序域仅使用固定数量的 ram(例如 128 兆),我就可以进行较小的单元测试,而不会让我的工作站崩溃。

有什么建议吗?我可以 P/Invoke 他们的一些非托管 API 吗?

最佳答案

您不能使用模拟框架进行内存分配并让它抛出 OutOfMemoryException 作为测试之一吗?

话虽如此,如果您确实内存不足,您的应用程序就无法安全地执行太多操作,但如果您至少可以优雅地失败,您的用户将会感激不尽。

示例:我之前的工作中有一个案例,我们要实时显示工厂的 3D 模型。模型变得如此之大,以至于当我们尝试加载纹理时,我们会遇到内存故障。我们通过确保代码处理空指针来设法保持应用程序的事件和渲染,即使代码的其余部分认为那里应该有纹理信息。

关于.net - 如何在不耗尽所有系统内存的情况下使 .NET 进程耗尽内存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/836199/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com