深入C# 內(nèi)存管理以及優(yōu)化的方法詳解
更新時(shí)間:2013年05月20日 10:44:49 作者:
本篇文章是對(duì)C#中內(nèi)存管理以及優(yōu)化的方法進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下
在C# winform應(yīng)用程序中,用以下代碼可以進(jìn)行一些內(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>
/// 將當(dāng)前進(jìn)程的內(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)存使用范圍的程序進(jìn)程句柄,一般為當(dāng)前進(jìn)程, 如: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>
/// 將當(dāng)前進(jìn)程的內(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)存使用范圍的程序進(jìn)程句柄,一般為當(dāng)前進(jìn)程, 如: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#?wpf利用附加屬性實(shí)現(xiàn)界面上定義裝飾器
裝飾器是wpf中可以浮在控件上面的一種組件,我們通??梢杂脕韺?shí)現(xiàn)一些諸如控件拖動(dòng)點(diǎn)、提示框、自定義鼠標(biāo)等界面功能。本文主要是利用附加屬性實(shí)現(xiàn)界面上定義裝飾器,需要的可以參考下2022-12-12
C#數(shù)據(jù)結(jié)構(gòu)與算法揭秘五 棧和隊(duì)列
這節(jié)我們討論了兩種好玩的數(shù)據(jù)結(jié)構(gòu),棧和隊(duì)列2012-11-11
DevExpress實(shí)現(xiàn)GridControl顯示Gif動(dòng)畫的方法
這篇文章主要介紹了DevExpress實(shí)現(xiàn)GridControl顯示Gif動(dòng)畫的方法,這是比較實(shí)用的方法,需要的朋友可以參考下2014-08-08
C#對(duì)稱加密(AES加密)每次生成的結(jié)果都不同的實(shí)現(xiàn)思路和代碼實(shí)例
這篇文章主要介紹了C#對(duì)稱加密(AES加密)每次生成的結(jié)果都不同的實(shí)現(xiàn)思路和代碼實(shí)例,每次解密時(shí)從密文中截取前16位,這就是實(shí)現(xiàn)隨機(jī)的奧秘,本文同時(shí)給出了實(shí)現(xiàn)代碼,需要的朋友可以參考下2015-07-07
基于C#實(shí)現(xiàn)簡單離線注冊(cè)碼生成與驗(yàn)證
本文使用RSA非對(duì)稱加密和Base64簡單地實(shí)現(xiàn)離線注冊(cè)碼的生成與驗(yàn)證功能。感興趣的朋友跟著小編一起學(xué)習(xí)吧2015-09-09
C#實(shí)現(xiàn)的文件上傳下載工具類完整實(shí)例【上傳文件自動(dòng)命名】
這篇文章主要介紹了C#實(shí)現(xiàn)的文件上傳下載工具類,結(jié)合完整實(shí)例形式分析了C#操作文件上傳與下載功能,并且還可針對(duì)上傳文件自動(dòng)命名以避免服務(wù)器中的文件名重復(fù),需要的朋友可以參考下2017-11-11

