深入C# 內(nèi)存管理以及優(yōu)化的方法詳解
更新時間:2013年05月20日 10:44:49 作者:
本篇文章是對C#中內(nèi)存管理以及優(yōu)化的方法進行了詳細的分析介紹,需要的朋友參考下
在C# winform應(yīng)用程序中,用以下代碼可以進行一些內(nèi)存使用的優(yōu)化
using System;
using System.Diagnostics;
using System.Runtime.InteropServices;
/// <summary>
/// 包含各種內(nèi)存管理、優(yōu)化的方法
/// </summary>
public class Memory
{
private static readonly Version myVersion = new Version(1, 0);
/// <summary>
/// 將當前進程的內(nèi)存占用尺寸設(shè)置到最小
/// </summary>
/// <returns>0為成功,-1為失敗</returns>
public static int SetProcessMemoryToMin()
{
return SetProcessMemoryToMin(Process.GetCurrentProcess().Handle);
}
/// <summary>
/// 將內(nèi)存占用尺寸設(shè)置到最小
/// </summary>
/// <param name="SetProcess">需要設(shè)置內(nèi)存使用范圍的程序進程句柄,一般為當前進程, 如:System.Diagnostics.Process.GetCurrentProcess().Handle</param>
/// <returns>0為成功,-1為失敗</returns>
public static int SetProcessMemoryToMin(IntPtr SetProcess)
{
if (Environment.OSVersion.Platform == PlatformID.Win32NT)
{
return SetProcessWorkingSetSize(SetProcess, -1, -1);
}
return -1;
}
[DllImport("kernel32.dll")]
private static extern int SetProcessWorkingSetSize(IntPtr hProcess, int dwMinimumWorkingSetSize, int dwMaximumWorkingSetSize);
}
復(fù)制代碼 代碼如下:
using System;
using System.Diagnostics;
using System.Runtime.InteropServices;
/// <summary>
/// 包含各種內(nèi)存管理、優(yōu)化的方法
/// </summary>
public class Memory
{
private static readonly Version myVersion = new Version(1, 0);
/// <summary>
/// 將當前進程的內(nèi)存占用尺寸設(shè)置到最小
/// </summary>
/// <returns>0為成功,-1為失敗</returns>
public static int SetProcessMemoryToMin()
{
return SetProcessMemoryToMin(Process.GetCurrentProcess().Handle);
}
/// <summary>
/// 將內(nèi)存占用尺寸設(shè)置到最小
/// </summary>
/// <param name="SetProcess">需要設(shè)置內(nèi)存使用范圍的程序進程句柄,一般為當前進程, 如:System.Diagnostics.Process.GetCurrentProcess().Handle</param>
/// <returns>0為成功,-1為失敗</returns>
public static int SetProcessMemoryToMin(IntPtr SetProcess)
{
if (Environment.OSVersion.Platform == PlatformID.Win32NT)
{
return SetProcessWorkingSetSize(SetProcess, -1, -1);
}
return -1;
}
[DllImport("kernel32.dll")]
private static extern int SetProcessWorkingSetSize(IntPtr hProcess, int dwMinimumWorkingSetSize, int dwMaximumWorkingSetSize);
}
相關(guān)文章
C#數(shù)據(jù)結(jié)構(gòu)與算法揭秘五 棧和隊列
這節(jié)我們討論了兩種好玩的數(shù)據(jù)結(jié)構(gòu),棧和隊列2012-11-11
DevExpress實現(xiàn)GridControl顯示Gif動畫的方法
這篇文章主要介紹了DevExpress實現(xiàn)GridControl顯示Gif動畫的方法,這是比較實用的方法,需要的朋友可以參考下2014-08-08
C#對稱加密(AES加密)每次生成的結(jié)果都不同的實現(xiàn)思路和代碼實例
這篇文章主要介紹了C#對稱加密(AES加密)每次生成的結(jié)果都不同的實現(xiàn)思路和代碼實例,每次解密時從密文中截取前16位,這就是實現(xiàn)隨機的奧秘,本文同時給出了實現(xiàn)代碼,需要的朋友可以參考下2015-07-07
C#實現(xiàn)的文件上傳下載工具類完整實例【上傳文件自動命名】
這篇文章主要介紹了C#實現(xiàn)的文件上傳下載工具類,結(jié)合完整實例形式分析了C#操作文件上傳與下載功能,并且還可針對上傳文件自動命名以避免服務(wù)器中的文件名重復(fù),需要的朋友可以參考下2017-11-11

