*The working set of a process is the set of memory pages currently visible to the process in physical RAM memory. These pages are resident and available for an application to use without triggering a page fault.
*The working set of a process consists of the set of resident physical pages visible to the process. When a thread accesses a page that is not in the working set of its process, a page fault occurs. Before the thread can continue, the virtual memory manager must add the page to the working set of the process. A larger working set increases the probability that a page will be resident in memory, and decreases the rate of page faults.
可以把Working Set看成一个进程可以用到(但不一定会使用)的物理内存(物理内存页的集合)。内存管理单元在进行虚拟内存地址到物理内存地址转换时,如果虚拟地址不在物理内存中,会引起page fault异常。足够的WorkingSet就可以保证常用的虚拟地址都位于物理内存中,减少这种异常,避免了异常处理(例如访问swap文件,将页面读入物理内存)带来的性能损耗。因此,对于时间比较敏感的程序,应该分配足够的WorkingSet以保证程序性能。
*When you increase the working set size of an application, you are taking away physical memory from the rest of the system.
*Suppose you have a 16-megabyte system and you set your minimum to four megabytes. In effect, this takes away four megabytes from the system. Other applications may be unable to get their minimum working set.
可见,Working Set是被真实地从物理内存中划分出来的。一个程序占用了多少Working Set,物理内存中就有多少空间不能被其它程序使用。
*Reducing memory consumption is always a beneficial goal. If you call SetProcessWorkingSetSize(0xffffffff, 0xffffffff), this tells the system that your working set can be released. This does not change the current sizing of the working set, it just allows the memory to be used by other applications. It is a good idea to do this when your application goes into a wait state.
*Windows NT 3.5 allows processes to increase their working set size by using SetProcessWorkingSetSize(). This API is also useful to trim your minimum working set size if you want to run many processes at once, because each process has the default minimum working set size reserved, no matter how small the process actually is.
Windows会为每个进程保留一个默认数值的working set,然而这个保留的Working set可能会比该process实际需要的大。可以用SetProcessWorkingSetSize()来对进程的Working set进行裁剪,只保留进程目前已经占用的页面,空闲的就释放掉给其它应用使用。
分享到:
相关推荐
预览内容中提到了很多关于DataTable和DataColumn的属性和方法,如AutoIncrement(自动增长)、Caption(标题)、ColumnName(列名)、DataType(数据类型)等。 6. 数据约束:约束是用于确保数据完整性的一种机制。...
在Microsoft的MFC库中,`CString`是一个非常重要的类,它提供了许多操作字符串的便捷方法。`CString`类的设计灵感来源于C++标准库中的`std::string`,但其功能更加丰富,尤其是在处理Windows API时更为方便。下面...
`MFC MSDN中文帮助.chm`文件很可能是MSDN关于MFC的中文版文档,包含了MFC类库的详细说明、示例代码和使用指南,是学习和解决问题的重要参考资料。 **MFC的主要组件** 1. **CWinApp**: 应用程序类,负责初始化和...
MSDN(Microsoft Developer Network)是微软为开发者提供的一系列技术文档和资源的综合平台,它包含了微软各种操作系统、开发工具、编程语言以及框架的详细信息。这个“MSDN帮助文档中文.zip”压缩包文件显然是一个...
在MSDN中文版中,你可以找到关于Windows操作系统、.NET Framework、Visual Studio IDE、SQL Server数据库、Office开发、Azure云服务等微软核心产品的详细信息。这些内容对于开发者来说至关重要,因为它们能帮助...
在MSDN中文版中,你可以找到关于C++编程的各种教程、API参考、示例代码以及最佳实践。这包括了C++语言标准的解释、STL(Standard Template Library)的使用、异常处理、内存管理、多线程编程等内容。对于MFC部分,...
在这个压缩包中,你将找到四本MSDN中文在线书籍的集合,这些书籍是微软官方出版的,旨在帮助开发者深入理解和使用.NET系列的技术。 首先,我们需要了解.NET系列。.NET是微软推出的一个软件框架,它为开发者提供了...
MSDN的CHM文档提供了这些API的详细说明,包括参数、返回值、示例代码以及可能的错误代码等。 3. **Visual Studio集成开发环境(IDE)**:对于使用Visual Studio的开发者,MSDN CHM文档也包含了IDE的使用教程和...
**VC++ 6.0 和 MSDN 中文版** Visual C++ 6.0 是微软在1998年发布的一款经典集成开发环境(IDE),主要用于编写基于Microsoft Windows平台的应用程序,尤其是C++语言的程序。它包含了编译器、调试器、资源编辑器...
**MSDN VC++ MFC类库中文手册**是面向C++开发者的重要参考资料,特别是对于那些在Windows平台上使用Microsoft Foundation Class (MFC)库进行应用程序开发的程序员。MFC是一个C++类库,它封装了Windows API,使得开发...
ASP技术是构建Web应用程序的一种重要工具,尤其在20世纪90年代末到21世纪初,它在企业级Web开发中占据了主导地位。 **MSDN中文ASP帮助**是针对ASP学习者的重要参考资料,它提供了详细的API文档、示例代码以及开发者...
MSDN6.0中包含了关于C++标准库的详细信息,如STL(Standard Template Library),其中包括容器(如vector、list、set等)、算法(如排序、查找等)和迭代器等核心概念。通过这些文档,开发者可以深入理解C++的语法、...
MSDN 中文在线书籍.chm
将MSDN中的D3D部分翻译成中文,对于国内开发者来说是一份极其宝贵的参考资料,它消除了语言障碍,使得更多的人能够理解和掌握Direct3D技术。 Direct3D的核心概念包括: 1. 设备(Device):是Direct3D中的主要对象...
以下是一些关于如何有效利用MSDN的技巧: 1. **打开MSDN**: - 可以直接通过“开始”菜单的“程序”选项找到“Microsoft Developer Network”启动MSDN Library。 - 也可以从Microsoft Visual Studio集成开发环境...
1. **启动下载器**:运行压缩包中的"Default.VisualStudio.HelpDownloader.exe"文件,启动VS2010 MSDN中文下载器程序。 2. **选择语言**:在程序界面中,用户可以选择需要的语言,这里默认应该是中文。 3. **选择...
7. **设计模式和最佳实践**:MSDN还包含了一些软件设计原则和常见模式的讲解,有助于提升代码的可读性、可维护性和扩展性。 通过深入阅读和实践MSDN中的VC帮助文档,开发者不仅可以掌握C++语言的基础,还能了解到...
MSDN(Microsoft Developer Network)的C#文档是学习C#的权威资源,包含了从基础到高级的所有主题,适合各个层次的开发者参考。 【C# 语言和 .NET 简介】 C# 语言是微软为.NET框架设计的,它支持现代编程特性,如...
在MSDN中,你可以找到关于以下关键知识点的详细信息: 1. **C++标准库**:包括STL(Standard Template Library),如容器(vector、list、map等)、算法、迭代器等,这些都是C++编程的基础。 2. **MFC库**:微软...