如何衡量C#中线程的内存消耗?
我正在观察的场景是一个程序正试图解决一些硬搜索问题,它启动一个线程来寻找其中一个解决方案,该线程运行了一段时间,也许它找到了一个解决方案,或者它可能会超过其内存容量,因此会失败。但要实现这一点,有必要找出线程(而不是整个过程)使用多少内存。有没有办法做到这一点?
答案 0 :(得分:2)
线程共享一个公共堆,但有自己的堆栈。
不是试图获取特定线程的内存消耗(你不能这样做),最好使用Visual Studio Memory Profiler分析你的解决方案,或者使用Ants Memory分析器来帮助找到你所面临的潜在内存问题。
您的应用程序是否吐出任何异常?