继续上一篇的解释:
--------------------------------
一个空白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
}
分享到:
相关推荐
划分以及当今流行的几种内存规模(扩充内存扩展内存等),以及相应的管理程序,实现方法,手段等有关技术问题,并 在此基础上深入剖析了计算机内存如何工作和应用程序如何使用内存,以及多个任务与内存等有关问题,...
当用户量过大,或服务器性能不足以支持大用户量,但同时又得不到扩容的情况下,进行性能分析,并对系统、应用、程序进行优化显得尤为重要,也是节省资源的一种必不可少的手段。目前大多数运维产品都基于JAVA语言开发...
石青网站推广软件是国内第一款,集成博客群发和伪原创的网站推广工具。以建立高质量外链和原创网文为手段,来推广网站。 本软件是一款专业的网站推广工具。其主要工作原理是:通过大量群发高质量的博客,在博文中...
对于大型的系统开发以及性能优化缓存也是必不可少的一种手段,这时候redis就因此而生,由于redis是将数据缓存到内存条中的,所以它的读取速度和写入速度都是很快的,传统的像关系型数据库都是在磁盘所以如果对于特别...
管理系统,作为一种高效的企业运营管理工具,旨在通过集成化、系统化的手段,对组织内部的各类资源进行规划、协调、控制和优化,以实现企业战略目标,提升运营效率,增强核心竞争力。以下是对管理系统的详细介绍: ...
另外,本文介绍了一种Web应用的性能优化方法,并利用WAS测试了它的性能改善程度。 随着服务器端处理任务的日益复杂以及网站访问量的迅速增长,服务器性能的优化也成了非常迫切的任务。在优化之前,最好能够测试一下...
我们在国产并行系统上实现了IPoIB,通过乱序处理、内存拷贝优化、网络参数调优和避免应答延迟的优化手段,实现了IPoIB在国产并行系统上的性能提升.实验结果表明,IPoIB在国产并行系统上正确运行,网络带宽与优化前...
这个主意是针对于性能优化的方案,其核心是一种分布式的架构思想,具体的实现手段有很多种,在本课程我们使用了RMI技术来完成。通常我们会将一个完成的程序包运行在Web容器(tomcat或其他)中,容器除了要负责接受...
另外,本文介绍了一种Web应用的性能优化方法,并利用WAS测试了它的性能改善程度。 随着服务器端处理任务的日益复杂以及网站访问量的迅速增长,服务器性能的优化也成了非常迫切的任务。在优化之前,最好能够测试一下...
LoadRunner常见测试结果分析 在测试过程中,可能会出现以下常见的几种测试情况: ...流程、工具无非只是我们改进工作过程的一种手段,而不是吃饭的家伙。请正视自己的职业,不要把测试工具当饭吃。
Swift 是一种新的编程语言,用于编写 iOS 和 OS X 应用。Swift 结合了 C 和 Objective-C 的优点并且不受 C 兼容性的限制。 Swift 采用安全的编程模式并添加了很多新特性,这将使编程更简单,更灵活,也更有趣。Swift...
5. 优化FindXXXX等的查询速度. 同时接口FindIntEx FindFloatEx FindDoubleEx FindStringEx FindDataEx参数变更. 6. 解决FindMultiColor和FindMultiColorEx在某些时候会找不到的BUG 7. 加强绑定模式1. 增加付费接口...
“迅雷7”通过“Bolt”界面引擎优化管理UI资源的打包及按需加载,大量的逻辑代码使用脚本语言编写,加上异步初始化任务管理等手段,使“迅雷7”的启动速度比迅雷5.9有大幅提升。 5、稳定可靠 “迅雷7”采用XML...
除此之外, 《Redis实战》还介绍了使用短结构、分片、事务、流水线、复制、Lua 脚本等手段来扩展和优化 Redis 的方法, 这些技术可以大幅地扩展系统的性能, 并尽可能地降低程序所需的内存数量。
在第一种方案中,内存芯片的速度要提高一倍(大约),而不能降低微处理器的速度;第二种方案中,内存的字长必须加倍,以便能发送/接受32位数量。 1.6、考虑一个计算机系统,它包含一个I/O模块,用以控制一台简单的...
35.Flash5允许使用Action的功能有哪几种? A. Symbol B. Movie Clips C. Keyframe D. Button Symbol 36.以下语句说法正确的有: A. getURL表示使浏览器浏览到指定页面 B. gotoAndPlay表示跳转到指定帧并播放 ...
一、什么是写时拷贝 写入时复制是一种计算机程序设计领域的优化策略。其核心思想是,如果有多个调用者同时请求相同资源...写时拷贝技术是一种很重要的优化手段,核心是懒惰处理实体资源请求,在多个实体资源之间只是共
.NET20 一种简单的窗口控件UI状态控制方法 翻译MSDN文章 —— 泛型FAQ:最佳实践 Visual C# 3.0 新特性概览 C# 2.0会给我们带来什么 泛型技巧系列:如何提供类型参数之间的转换 C#2.0 - Object Pool 简单实现 ...
采用匿名方式浏览,你在登录网站时会产生一种叫cookie即临时文件,可以保存你浏览网页的痕迹的信息存储器,许多网站会利用cookie跟踪你在互联网上的活动。你可以在使用浏览器的时候在参数选项中选择关闭计算机接收...
� 采用了对有限内存、电池和 CPU 优化过的虚拟机 Dalvik , Android 的运行速度比想象的要快很多。 � 运营商(中国移动等)的大力支持,产业链条的热捧。 � 良好的盈利模式( 3/7 开),产业链条的各方:运营商、...