深入C# 內(nèi)存管理以及優(yōu)化的方法詳解
更新時間:2013年05月20日 10:44:49 作者:
本篇文章是對C#中內(nèi)存管理以及優(yōu)化的方法進行了詳細的分析介紹,需要的朋友參考下
在C# winform應用程序中,用以下代碼可以進行一些內(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)存占用尺寸設置到最小
/// </summary>
/// <returns>0為成功,-1為失敗</returns>
public static int SetProcessMemoryToMin()
{
return SetProcessMemoryToMin(Process.GetCurrentProcess().Handle);
}
/// <summary>
/// 將內(nèi)存占用尺寸設置到最小
/// </summary>
/// <param name="SetProcess">需要設置內(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);
}
復制代碼 代碼如下:
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)存占用尺寸設置到最小
/// </summary>
/// <returns>0為成功,-1為失敗</returns>
public static int SetProcessMemoryToMin()
{
return SetProcessMemoryToMin(Process.GetCurrentProcess().Handle);
}
/// <summary>
/// 將內(nèi)存占用尺寸設置到最小
/// </summary>
/// <param name="SetProcess">需要設置內(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);
}
相關文章
C#數(shù)據(jù)結(jié)構(gòu)之最小堆的實現(xiàn)方法
這篇文章主要給大家介紹了關于C#數(shù)據(jù)結(jié)構(gòu)之最小堆的實現(xiàn)方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2021-02-02C#中的IEnumerable簡介及簡單實現(xiàn)實例
這篇文章主要介紹了C#中的IEnumerable簡介及簡單實現(xiàn)實例,本文講解了IEnumerable一些知識并給出了一個簡單的實現(xiàn),需要的朋友可以參考下2015-03-03