我有奇怪的麻烦,我创建了控制台应用程序App1,这个应用程序的唯一目的是获取参数(val)检查此值是否大于零如果是,则运行相同的应用程序(App1)与val--在参数并关闭。
我从预定任务运行此应用程序,我每隔一分钟运行一次。问题是,当我以1000为参数运行此应用程序时,它会在两三分钟后挂起我的电脑(蓝屏)。对于像10这样的论点,一切正常。
我需要这个应用来测试不同机器上内存管理的一些问题。
我运行了以下代码:
static void Main( string[] args )
{
if ( args.Length > 0 )
{
int val = 0;
try
{
Int32.TryParse( args[ 0 ], out val );
}
catch ( Exception ex )
{ }
if ( val > 0 )
{
val--;
ProcessStartInfo psi = new ProcessStartInfo(System.Windows.Forms.Application.ExecutablePath, val.ToString() );
psi.CreateNoWindow = true;
psi.WindowStyle = ProcessWindowStyle.Hidden;
Process.Start( psi );
}
System.Console.WriteLine( args[ 0 ] );
}
System.Console.WriteLine( "App" );
}
答案 0 :(得分:1)
您究竟是如何确定可用内存的?您是否正在查看Windows任务管理器中“物理内存”框中的“免费”部分?
如果是这样,请停止这样做。现在在我的机器上,该数字表示我有6 MB空闲时间。由于我总共有5 GB的RAM,只有少数Chrome和VS 2010运行,我严重怀疑我已经消耗了所有可用的RAM。
实际上,您不应该曾任务管理器进行内存分析。这回答both of your most recent questions。绝对没有内存泄漏,你不需要进行这种愚蠢的回归测试。