【问题标题】:Measuring memory consumption of a thread测量线程的内存消耗
【发布时间】:2017-05-28 06:43:45
【问题描述】:

如何测量 C# 中线程的内存消耗?

我正在查看的场景是一个程序正在尝试解决一些硬搜索问题,它启动一个线程来寻找其中一个的解决方案,线程运行一段时间,也许它找到了解决方案,或者它可能超出其内存限额并因此失败。但要实现这一点,有必要找出线程(而不是整个进程)正在使用多少内存。有没有办法做到这一点?

【问题讨论】:

    标签: c# .net multithreading memory


    【解决方案1】:

    线程共享一个公共堆,但有自己的堆栈。

    与其尝试获取特定线程的内存消耗(您不能这样做),不如使用 Visual Studio Memory Profiler 或使用 Ants Memory Profiler 来分析您的解决方案来帮助发现您面临的潜在内存问题。

    您的应用程序是否抛出任何异常?

    【讨论】:

    • 对,澄清一下,高内存消耗的原因不是程序中的错误,而是尝试解决问题的本质所固有的,例如定理证明了最著名的算法在某些小问题实例中消耗大量内存的地方。但是,如果没有办法做到这一点,那就没有办法了。也许我应该考虑运行单独的进程。
    猜你喜欢
    • 2014-09-21
    • 1970-01-01
    • 2017-10-01
    • 2015-10-06
    • 2016-04-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多