gpt4 book ai didi

.net - 检测 Windows 中的内存抖动

转载 作者:可可西里 更新时间:2023-11-01 10:42:58 28 4
gpt4 key购买 nike

我正在开发一个执行 CPU 和内存密集型计算的应用程序。一个可能发生的问题是我们并行运行了太多的计算任务,导致机器使用过多的内存并且一切都陷入停顿。解决方案很简单:并行运行更少的任务。然而,Windows 没有提供内存压力过大的警告,有时我们的用户并没有意识到他们正在运行太多任务。我们希望显示来自应用程序的警告以帮助我们的用户。

问题 1:提供这样的警告是个好主意,还是这在概念上有问题?

问题 2:检测内存不足导致性能不佳的好方法是什么?我正在考虑简单地查看仍然可用的物理内存百分比,并在该百分比变得非常低时发出警告。然而,这似乎有些武断并且容易产生误报。

是否有其他方法可以查看应用程序或 Windows 是否正在进行大量内存交换,或者是否在垃圾收集上花费了大量时间?我在 Windows 上运行 .NET 应用程序。

最佳答案

如果您用于计算的线程数超过 CPU 核心数(比如 N),您已经减慢了计算速度,因为操作系统花费时间来切换线程上下文,但只有 N 个线程同时工作。您需要以某种方式将执行大量计算的线程数限制为 N 或 N - 1(1 个线程用于 GUI 主线程)。

关于内存,您可以在新的计算例程开始之前检查可用内存的数量,如果没有足够的内存则延迟它 - 例如将这样的任务放入队列中。

关于.net - 检测 Windows 中的内存抖动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41140643/

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