解决方案 »
- ◆combobox如何禁止下拉◆
- 将时间的分钟数尾数转化成0或者5
- 在WEB窗体下有没有像WINDOWS窗体下跟DateTimePicker一样的日期/时间控件啊?
- 关于c#的索引器的使用
- vs2008新建1个项目时就没有解决方案,1个以上就有,怎么回事?
- 怎么提取出一篇文章中出现频率最高的词?
- 如何对string[] 与string 之间的直接赋值?
- 简单的导出EXCEL表格的菜鸟问题 请大家帮我一下 谢谢拉
- 呵呵,今天又来了一个问题,不知道如何解决更好!
- 【求助-练手】我做了一个游戏的登录窗口,但是不知道该怎么配对玩家输入的字符与原本的TXT文件
- 如何实现listbox的数据过滤
- vs.2008卸载,安装2010后,运行以前的项目文件,出错!
#region 回收内存方法组
/// <summary>
/// 设置操作系统实际划分给进程使用的内存容量
/// </summary>
/// <param name="hProcess">指定一个进程的句柄</param>
/// <param name="dwMinimumWorkingSetSize">用于装载最小进程容量的一个变量</param>
/// <param name="dwMaximumWorkingSetSize">用于装载最大进程容量的一个变量</param>
/// <returns></returns>
[DllImport("kernel32.dll")]
public static extern int SetProcessWorkingSetSize(IntPtr hProcess, int dwMinimumWorkingSetSize, int dwMaximumWorkingSetSize); private static readonly Version myVersion = new Version(1, 0);
/// <summary>
/// 将当前进程的内存占用尺寸设置到最小
/// </summary>
/// <returns>0为成功,-1为失败</returns>
public static int SetProcessMemoryToMin()
{
return SetProcessMemoryToMin(System.Diagnostics.Process.GetCurrentProcess().Handle);
}
/// <summary>
/// 将内存占用尺寸设置到最小
/// </summary>
/// <param name="SetProcess">需要设置内存使用范围的程序进程句柄,一般为当前进程,如:System.Diagnostics.Process.GetCurrentProcess().Handle</param>
/// <returns>0为成功,-1为失败</returns>
public static int SetProcessMemoryToMin(IntPtr SetProcess)
{
GC.Collect();
GC.Collect();
if (Environment.OSVersion.Platform == PlatformID.Win32NT)
{
return SetProcessWorkingSetSize(SetProcess, -1, -1);
}
return -1;
}
#endregion
在程序中直接调用
SetProcessMemoryToMin(); 即可
刚才发的是没有发上来还是被删掉了??? 为什么???
if (p.WorkingSet > 10240000)//界限
{
p.MaxWorkingSet = p.MaxWorkingSet;
}
我想问问你的机器上有多少内存?假设我们的服务运行了一整天,结果它占用内存300M,这我非常欣慰。因为这说明不少内容快速地缓存起来了,让程序运行得更好。我们的服务器只是一台低档的PC机,只有区区2G物理内存,而且开着数据库服务器、web服务器等等,那么连我们自己的业务加起来其内存占用可能也不过平均1.3个G,有什么必要担心内存不够的?非要宁可牺牲程序正常运行效率也要把内存暂时释放到2M?仅仅为了欺骗客户一下(给客户炫耀一下我们会在程序管理器的显示窗口上作假)?
释放进程所声明的内存空间,跟什么“手动调用dispose方法”半点关系也没有。dispose充其量你可以说是“释放资源”,但是释放什么资源?你了解过吗?