深入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#對(duì)list列表進(jìn)行隨機(jī)排序的方法
這篇文章主要介紹了C#對(duì)list列表進(jìn)行隨機(jī)排序的方法,涉及C#操作list列表的技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-04-04C#數(shù)據(jù)結(jié)構(gòu)之最小堆的實(shí)現(xiàn)方法
這篇文章主要給大家介紹了關(guān)于C#數(shù)據(jù)結(jié)構(gòu)之最小堆的實(shí)現(xiàn)方法,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2021-02-02C#中的IEnumerable簡(jiǎn)介及簡(jiǎn)單實(shí)現(xiàn)實(shí)例
這篇文章主要介紹了C#中的IEnumerable簡(jiǎn)介及簡(jiǎn)單實(shí)現(xiàn)實(shí)例,本文講解了IEnumerable一些知識(shí)并給出了一個(gè)簡(jiǎn)單的實(shí)現(xiàn),需要的朋友可以參考下2015-03-03