Windows内存管理的方法

windows内存管理 内存管理、文件映射 阅读详情

一、先说说内存的概念

1.物理内存:即插在主板上的内存条。他是固定的,内存条的容量多大,物理内存就有多大(集成显卡系统除外)。但是如果程序运行很多或者程序本身很大的话,就会导致大量的物理内存占用,甚至导致物理内存消耗殆尽。

2.虚拟内存:虚拟内存就是在硬盘上划分一块页面文件,充当内存。当程序在运行时,有一部分资源还没有用上或者同时打开几个程序却只操作其中一个程序时,系统没必要将程序所有的资源都塞在物理内存中,于是,系统将这些暂时不用的资源放在虚拟内存上,等到需要时在调出来用。

当程序运行时需要从内存中读出这段程序的代码。代码的位置必须在物理内存中才能被运行,由于现在的操作系统中有非常多的程序运行着,内存中不能够完全放下,所以引出了虚拟内存的概念。把哪些不常用的程序片断就放入虚拟内存,当需要用到它的时候在load入主存(物理内存)中。这个就是内存管理所要做的事。内存管理还有另外一件事需要做:计算程序片段在主存中的物理位置,以便CPU调度。
二、内存管理的主要方式
1.块式管理
把主存分为一大块、一大块的,当所需的程序片断不在主存时就分配一块主存空间,把程 序片断load入主存,就算所需的程序片度只有几个字节也只能把这一块分配给它。这样会造成很大的浪费,平均浪费了50%的内存空间,但时易于管理。

2.页式管理

把主存分为一页一页的,每一页的空间要比一块一块的空间小很多,显然这种方法的空间利用率要比块式管理高很多。

3.段式

把主存分为一段一段的,每一段的空间又要比一页一页的空间小很多,这种方法在空间利用率上又比页式管理高很多,但是也有另外一个缺点。一个程序片断可能会被分为几十段,这样很多时间就会被浪费在计算每一段的物理地址上(计算机最耗时间的大家都知道是I/O吧)。
4.段页式管理。(现在常用)

结合了段式管理和页式管理的优点。把主存分为若干页,每一页又分为若干段。

三、几种优化内存管理方法

(一)、提高内存的使用效率

1.提高系统其他部件的性能

计算机其他部件的性能对内存的使用也有较大的影响,如总线类型、CPU、硬盘和显存等。如果显存太小,而显示的数据量很大,再多的内存也是不可能提高其运行速度和系统效率的。如果硬盘的速度太慢,则会严重影响整个系统的工作。

2.调整高速缓存区域的大小

可以在“计算机的主要用途”选项卡中设置系统利用高速缓存的比例。如果系统的内存较多,可选择“网络服务器”,这样系统将用较多的内存作为高速缓存。在CD-ROM标签中,可以直接调节系统用多少内存作为CD-ROM光盘读写的高速缓存。

(二)、优化内存管理

1.监视内存

系统的内存不管有多大,总是会用完的。虽然有虚拟内存,但由于硬盘的读写速度无法与内存的速度相比,所以在使用内存时,就要时刻监视内存的使用情况。Windows操作系统中提供了一个系统监视器,可以监视内存的使用情况。一般如果只有60%的内存资源可用,这时你就要注意调整内存了,不然就会严重影响电脑的运行速度和系统性能。

2.及时释放内存空间

如果你发现系统的内存不多了,就要注意释放内存。所谓释放内存,就是将驻留在内存中的数据从内存中释放出来。释放内存最简单有效的方法,就是重新启动计算机。另外,就是关闭暂时不用的程序。还有要注意剪贴板中如果存储了图像资料,是要占用大量内存空间的。这时只要剪贴几个字,就可以把内存中剪贴板上原有的图片冲掉,从而将它所占用的大量的内存释放出来。

3.优化内存中的数据

在Windows中,驻留内存中的数据越多,就越要占用内存资源。所以,桌面上和任务栏中的快捷图标不要设置得太多。如果内存资源较为紧张,可以考虑尽量少用各种后台驻留的程序。平时在操作电脑时,不要打开太多的文件或窗口。长时间地使用计算机后,如果没有重新启动计算机,内存中的数据排列就有可能因为比较混乱,从而导致系统性能的下降。这时你就要考虑重新启动计算机。

四、申请内存的一些函数

申请

释放

new

delete

malloc

free

CoTaskMemAlloc

CoTaskMemFree

IMalloc::alloc

IMalloc/free

GlobalAlloc

GlobalFree

LocalAlloc

LocalFree

HeapAlloc

HeapFree

VirtualAlloc

VirtualFree



注:一些链接 http://pnig0s1992.blog.51cto.com/393390/605097




Python地理空间数据库之geopandas使用详解 地理空间数据分析在许多领域中都有着广泛的应用,包括地理信息系统(GIS)、城市规划、环境科学、地质勘探等。Python GeoPandas是一个强大的库,旨在简化地理空间数据的处理和分析。本文将深入介绍GeoPandas库,包括其基本概念、功能特性、示例代码以及在实际应用中的应用场景。 阅读详情

相关推荐

Nestjs框架: 集成 Prisma

NestJS官方文档提供了两种数据库相关的内容:Techniques下的数据库板块和Recipes下的具体数据库集成方案。本文以Prisma为例,演示了如何集成Prisma到NestJS项目中。首先创建NestJS项目并安装Prisma,配置MySQL数据库连接。通过Prisma CLI初始化项目、定义数据模型并生成迁移文件。接着创建Prisma模块和服务,配置Prisma客户端连接数据库。最后在控制器中注入PrismaService实现数据查询。整个过程包含了Docker启动MySQL、Prisma模型定

Wang的专栏 1294

Windows管理内存的3种方式——堆、虚拟内存、共享内存

本文主要介绍了Windows管理内存的3种方式——堆、虚拟内存、共享内存

Tandy12356_的博客 5750

基于STM32与HRTIM的四开关Buck-Boost双向DC-DC电源设计实战(附源码、仿真与设计解析)

本文详细介绍了基于STM32F334的HRTIM高分辨率定时器实现四开关Buck-Boost双向DC-DC电源的设计实战。通过精准的PWM控制、双环PID算法和智能模式切换逻辑,解决了电压震荡与效率优化等关键问题,并提供了完整的源码、PSIM仿真及参数计算,为高性能电源设计提供了实用参考。

7z8x2c4v6b9的博客 299

Windows的内存管理机制

内存管理方式建议大家多看看计算机组成原理,回过头来看windows的内存管理机制就能更好的明白windows为啥这么做~而不是直接让你操作物理内存

Albert_weiku的博客 4666

mtk-drm commit送显流程(二):内核态atomic_commit实现解析

本文深入解析了mtk-drm框架中atomic_commit机制的内核态实现流程,详细介绍了从用户态触发到硬件提交的完整调用链,包括状态检查、硬件提交等关键阶段。特别分析了MTK平台在动态刷新率、内存带宽优化等方面的特有实现策略,为开发者提供了调试技巧和常见问题解决方案。

weixin_30839881的博客 1305

【ArcGIS Engine二次开发】入门基础(2):ArcGIS开发方式(VBA、DLL、Add-in、Engine)对比

文章目录2.1 使用VBA进行桌面软件开发2.1.1 VBA开发方式2.1.1 VBA代码的安全性2.2 使用DLL进行桌面软件开发2.2.1 DLL开发方式2.2.2 DLL功能的应用部署2.3 使用Add-in进行桌面软件开发2.4 使用ArcGIS Engine构建独立应用程序 对于桌面GIS应用来说,ArcGIS平台不仅提供了用于开发独立运行的GIS应用软件的二次开发工包ArcGIS Engine,还提供了对ArcGIS Deskop桌面软件进行扩展的开发的话,在开发个具体的GIS 行业应用软件时

智慧空间实验室 6510

全面介绍Windows内存管理机制及C++内存分配实例

(一):进程空间   本文背景: 在编程中,很多Windows或C++的内存函数不知道有什么区别,更别谈有效使用;根本的原因是,没有清楚的理解操作系统的内存管理机制,本文企图通过简单的总结描述,结合实例来阐明这个机制。 本文目的: 对Windows内存管理机制了解清楚,有效的利用C++内存函数管理和使用内存。 1.      进程地址空间 1.1地址空间 ·        32|

zhujunwsk的专栏 3143

第21章—技术管理篇(上):身为技术人该怎样带好团队并做好管理者

上节讲了职业规划和学习提升这两个话题,随着职业规划的不断落地,或者自己能力的不断提升,大家也会逐渐被提拔成“职级更高”的人。企业规模扩张时,员工数量也会变多,意味着Boss需要更多的人来辅助管理,而管理者会从外部招聘吗?也许会,但大多企业更喜欢从内部选拔,毕竟人的天性更希望找的人值得信赖。此时,一些能力不错、做事靠谱的老员工,就会被“赶上”管理者的位子。作管理不难,但想要“”就需要一定情商。

运维老生常谈 1366

Windows内存管理总结

Windows内存管理

qq_43147121的博客 1059

基于YOLOv5与改进遗传算法的动态路径规划方法研究

摘要 本文提出一种融合YOLOv5目标检测与改进遗传算法的动态路径规划方法。通过YOLOv5实时感知环境中的动态和静态障碍物,将语义信息转化为栅格地图。针对传统遗传算法在路径规划中易早熟收敛、局部搜索能力差等问题,提出自适应初始化种群策略、动态变异算子及精英保留机制等改进方案。仿真结果表明,该方法在动态环境中能规划出更安全、平滑且长度更优的路径,具有更强的环境适应性和鲁棒性。 关键词:路径规划;YOLOv5;遗传算法;动态环境;目标检测

huanghm88的专栏 939

Oracle 查看 rman 备份情况 SQL 语句

每天一个 DBA 小知识,助你更进一步!

LuciferLiu_DBA 3119

描述Windows操作系统内存管理的方法

(1)有三种方法:虚拟内存,内存映射文件,内存堆栈。 虚拟内存是将页文件加载到内存,适用于比较大的对象或结构; 内存映射文件是将磁盘上文件加载到内存,适用于大文件和单机的进程间内存共享; 堆栈就是动态的分配内存,适用于小对象的创建。 这些在windows核心编程中都描述得很详细的。 (2)当进程要读自己的虚拟地址空间中的数据时: if(数据在物理内存中)

编程浪子的专栏 1972

【AUTOSAR-IpduM】-2.2-创建并配置一个接收RX的(Multiplexed-I-PDU)多路复用

案列背景: 在CFG中配置一个发送TX的(Multiplexed-I-PDU)多路复用Frame。 目录 1 在Arxml中创建一个发送的多路复用Frame 2 CFG导入带多路复用Frame的ARXML 2.1 CFG中提示的错误Error 2.2 如何解决CFG中提示的错误Error 3 结尾 <--返回「Autosar_BSW高阶配置」总目录--> <--返回「Autosar_BSW高阶配置」专栏主页--> <--返回「个人博客」首页--&g..

「汽车电子助手」的博客 1570

Windows 操作系统内存管理的方法

windows内存管理方法小结

zlghust的专栏 2243

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

Windows 内存管理方法(二)

Windows内存原理 Windows中,我们接触的一般都是线性地址,而其并非真实存在的,而真正的物理地址是利用一段N长的数组来定位的,这样能够完成保护模式。          假设我们没有使用线性地址,那么我们可以直接访问物理地址,但是这样我们在往内存中写东西的时候操作系统更无法检查这块内存是否是可写的。这样会造成非法覆盖等,最后操作系统的内核函数可能就被覆盖了。      由

Invoker's Tower 937

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

描述 Windows 操作系统内存管理的方法

  (1)有三种方法:虚拟内存,内存映射文件,内存堆栈。 虚拟内存是将页文件加载到内存,适用于比较大的对象或结构; 内存映射文件是将磁盘上文件加载到内存,适用于大文件和单机的进程间内存共享; 堆栈就是动态的分配内存,适用于小对象的创建。 这些在windows核心编程中都描述得很详细的。 (2)当进程要读自己的虚拟地址空间中的数据时:  if(数据在物

yuesheng3707的专栏 822

描述Windows内存管理的方法

(1)有三种方法:虚拟内存,内存映射文件,内存堆栈。 虚拟内存是将页文件加载到内存,适用于比较大的对象或结构; 内存映射文件是将磁盘上文件加载到内存,适用于大文件和单机的进程间内存共享; 堆...

club666666的博客 291

内存的概念/windows中内存管理的方法

内存是计算机中重要的部分,是计算机沟通的桥梁。计算机的程序都是在内存中运行的,内存又称为内存存储器,起作用是用于暂时存放计算机中运算的数据,以及与外部存储器交换的数据。只要计算机在运行,CPU就会把需要运算的数据放到内存中,结束后CPU 再将结果传送出去。 内存又分为物理内存和虚拟内存: 1.物理内存:即插在主板上的内存条。他是固定的,内存条的容量多大,物理内存就有多大(集成显卡系统除

gaosaixing的博客 628

Windows 内存管理方法(一)

两个内存: 物理内存——就是插在主板上的内存条,它是固定的,内存条的容量多大,物理内存就有多大(集成显卡系统除外),但是如果程序运行很多或者程序本身很大的话,就会导致大量的物理内存占用,甚至导致物理内存消耗殆尽。 虚拟内存——虚拟内存就是在硬盘上面划分一块页面文件,充当内存。当程序在运行的时候,有一部分资源还没有用上或者同时打开几个程序却只能操作其中一个程序时,系统没必要将程序所有的资

Invoker's Tower 2714
上一篇: 判断链表中是否有环
下一篇: 笔试题
firefly_2002
博客等级 码龄14年 434粉丝 66原创
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值