继续上一篇的解释:
--------------------------------
一个空白WinForm在任务管理器中都占用几十兆内存,的确有点可怕!通常有3种方法:
1. 不要管他。
CLR & GC 会自动管理内存占用,根据当前环境参数自动调整,这样会得到一个最佳化的运行效率。
2. 设置托管程序进程允许的最大工作集大小。
1
Process.GetCurrentProcess().MaxWorkingSet
=
(IntPtr)(
1024
*
1024
*
5
);
3. 使用SetProcessWorkingSetSize,将部分物理内存占用转移到虚拟内存。
1
[DllImport(
"
kernel32.dll
"
)]
2
public
static
extern
bool
SetProcessWorkingSetSize(IntPtr proc,
int
min,
int
max );
3
4
private
void
button1_Click(
object
sender, System.EventArgs e)
5
{
6
SetProcessWorkingSetSize(Process.GetCurrentProcess().Handle,
-
1
,
-
1
);
7
}
注意第2,3种方法在某种程度上都会影响程序的性能。设置一个合理的工作集大小,或者在程序启动后,空闲时(Application.Idle)使用SetProcessWorkingSetSize,还是可以的,毕竟减少内存占用对于系统运行也有一定的益处。
使用事例:
1
private
void
timer1_Tick(
object
sender, System.EventArgs e)
2
{
3
//
使用定时器将当前物理内存占用(MB)添加到列表框中。
4
string
s
=
string
.Format(
"
{0}
"
, Process.GetCurrentProcess().WorkingSet
/
1024
/
1024
);
5
this
.listBox1.Items.Insert(
0
, s);
6
}
7
8
[DllImport(
"
kernel32.dll
"
)]
9
public
static
extern
bool
SetProcessWorkingSetSize(IntPtr proc,
int
min,
int
max );
10
11
private
void
button1_Click(
object
sender, System.EventArgs e)
12
{
13
//
减少内存占用
14
SetProcessWorkingSetSize(Process.GetCurrentProcess().Handle,
-
1
,
-
1
);
15
}
分享到:
相关推荐
"SetProcessWorkingSetSize"是Windows API函数,用于调整当前进程的工作集大小,这是调整内存使用的一种方法。工作集是指进程中当前正在使用的物理内存页,通过合理设置,可以避免频繁的页面交换,从而提高程序运行...
内存优化工具是针对计算机系统运行效率提升的一种实用软件,尤其对于32位和64位系统用户来说,它能够有效地管理并优化内存资源,解决电脑运行卡顿的问题。内存(RAM)是计算机运行过程中临时存储数据的重要部分,当...
总的来说,"内存优化整理工具 绿色版"为用户提供了一种简便的方法来管理和优化计算机的内存,提高系统运行效率,尤其对于那些经常运行大型应用或者电脑性能逐渐下降的用户来说,是一款非常实用的工具。然而,为了...
2. **内存对齐**:内存对齐是提高数据访问效率的一种手段,确保数据按照特定规则在内存中排列,避免不必要的缓存未命中。 3. **内存池**:内存池是一种内存管理技术,它预先申请一大块内存,然后从中分发小块内存给...
总的来说,"内存优化专家7.2 清理内存"通过其内核级优化技术和智能清理策略,为用户提供了一种有效提升电脑运行效率的方式。正确使用此类工具,可以在不升级硬件的情况下,显著改善电脑的整体性能,让用户享受更流畅...
这款软件可能采用了其中的一种或结合两种方式,以平衡用户体验和内存优化效果。 在实际使用中,用户只需运行压缩包内的“MemEmpty.exe”文件即可启动内存整理过程。这个程序可能是绿色版,无需安装即可直接运行,...
DLL(Dynamic Link Library)是Windows操作系统中的一个重要组成部分,它是一种可重用的代码库,能够被多个应用程序同时调用,从而提高系统效率和资源利用率。本压缩包“DLL内存优化加强版_dll_源码”提供的是一款...
内存压缩是一种技术,通过压缩内存中的数据来减少其占用的空间,从而在物理内存有限的情况下提高可用性。这种技术尤其适用于内存资源紧张的设备,如嵌入式系统或低配电脑。内存压缩算法有多种,例如LZ77、LZ78、...
内存压缩技术作为一种有效的内存优化手段,在提升系统性能方面发挥着重要作用。本文将详细介绍内存压缩技术的前身与现状以及其工作原理。 #### 一、内存压缩的前身与现状 ##### 1.1 前身:Compcache 内存压缩的...
内存整理是计算机优化的一种手段,尤其对于经常进行多任务处理或者运行大型软件的用户来说,内存整理能够提高电脑性能和响应速度。本文将详细介绍内存整理的原理、必要性以及如何使用名为"MemDef.exe"的内存整理软件...
手机虚拟内存软件是一种技术,它允许手机操作系统使用存储空间作为临时RAM(随机存取存储器)的扩展,以提升设备的性能和运行速度。在现代智能手机中,由于硬件限制,物理RAM容量可能不足以应对日益复杂的应用程序和...
此外,对象池的使用也是一种循环利用内存的方法。通过对象池可以将已经创建的对象存储起来,在需要时重新利用,而不是频繁地创建和销毁对象。 最后,Resource(资源管理)是整体的资源管理策略。在Android应用中,...
内存优化主要涉及以下几个方面: 1. **内存分配与释放**:在易语言编程中,正确地分配和释放内存是基础。过度的内存分配可能导致内存碎片,而忘记释放内存则可能导致内存泄漏。模块通过智能内存管理,自动跟踪内存...
内存管理是计算机操作系统中的...总之,选择像CleanMem这样的内存释放软件,可以作为临时提高系统性能的一种方法,但用户也需要了解内存管理的基本原理,并结合适当的系统维护和硬件升级,以保持电脑的最佳运行状态。
内存管理是计算机操作系统中...总之,系统内存回收软件是针对内存管理的一种辅助工具,能够帮助用户释放被浪费的内存资源,提升电脑运行流畅度。但用户应当理解其工作原理,并结合其他优化措施,以实现最佳的系统性能。
本文将详细探讨这两种内存溢出的原因、解决方案以及如何进行JVM内存优化。 #### PermGen space内存溢出 `PermGen space`全称为Permanent Generation space,它用于存储JVM的类元数据信息,如类定义、常量池等。当...
总的来说,内存虚拟硬盘软件是提升系统性能的一种技术手段,尤其适用于需要快速处理大量数据的工作场景,例如高清视频编辑、游戏运行、数据库操作等。但在使用前,应评估系统资源和数据持久性的需求,合理配置虚拟...
本优化版的Android图片瀑布流解决方案就是针对这一问题进行改进,旨在提供一种高效且稳定的图片加载策略。 1. **内存管理优化** - **使用BitmapFactory.Options**:在加载图片时,通过`BitmapFactory.decodeStream...
内存整理是解决计算机运行缓慢、卡顿问题的一种有效手段,尤其是在内存资源紧张时,这类工具能发挥重要作用。 **内存管理基础** 在理解smartram工作原理前,我们先来了解一下计算机内存的基本概念。内存,也称RAM...
弱引用是一种特殊的引用,它不会增加对象的引用计数,因此不会阻止垃圾回收器回收对象。 除此之外,常见的内存泄露场景还包括使用注册监听器而不及时注销、持有Bitmap等大型对象的引用不释放、使用Cursor等数据库...