C# 当应用程序在c中运行时,如何连续检查内存#

C# 当应用程序在c中运行时,如何连续检查内存#,c#,.net,winforms,C#,.net,Winforms,我有windows应用程序,因为我正在从form1打开form2。同时,我想不断地检查应用程序使用的内存。。。 任何人都可以帮助如何以编程方式监控应用程序内存 此外,我的应用程序是由私有DLL和私有网格组成的,这将导致使用更多的内存。。。我尝试了几种方法,比如Dispose()和垃圾收集器,以及处理用于私有网格的类 Thanks您可以使用Visual Studio探查器监视应用程序并搜索内存泄漏/性能问题。它将根据您选择的采样技术为您提供一份全面的报告 请参见您可以测量三种类型的内存:专用内存、

我有windows应用程序,因为我正在从form1打开form2。同时,我想不断地检查应用程序使用的内存。。。 任何人都可以帮助如何以编程方式监控应用程序内存

此外,我的应用程序是由私有DLL和私有网格组成的,这将导致使用更多的内存。。。我尝试了几种方法,比如Dispose()和垃圾收集器,以及处理用于私有网格的类


Thanks

您可以使用Visual Studio探查器监视应用程序并搜索内存泄漏/性能问题。它将根据您选择的采样技术为您提供一份全面的报告


请参见

您可以测量三种类型的内存:专用内存、物理内存和虚拟内存

 long PhysicalMemory = Process.GetCurrentProcess().WorkingSet64 / 1024;
 long virtualMemory = Process.GetCurrentProcess().VirtualMemorySize64 / 1024;
 var PM = new PerformanceCounter("Process", "Working Set - Private", Process.GetCurrentProcess().ProcessName);
 long privateMemory=PM.RawValue / 1024

谢谢你。只要我的应用程序还在运行,它就会持续计算。。。!!!据我所知,它只起一次作用。。你必须使用循环或另一个线程来持续监视它。你能告诉我如何继续吗?后台工作人员会这样做吗?你可以使用多线程。其中一个线程将在后台工作进程的循环中调用上述代码(否则你的应用程序将挂起)。另一种方法是创建一个单独的应用程序并从主应用程序调用该应用程序,它将使用Process.getProcessByName(“进程名称”)而不是Process.GetCurrentProcess()记录主应用程序的内存消耗在上面的代码中,您可以使用计时器的tick事件每秒刷新值。不要认为这会冻结你的应用程序,它要简单得多。请分享你的代码和错误。我没有收到错误。。应用程序运行良好。。。要在达到某个限制时停止应用程序。Bcoz,我的应用程序在达到该限制后崩溃了…这种行为不应该被称为“工作正常”。我觉得它工作得更好…意味着更快,除了消耗内存之外。。。请建议减少专用DLL占用内存的更好方法。。。。