【腾讯TMQ】win32应用程序性能测试-内存篇

本文探讨了Windows平台下应用程序的内存管理,包括物理内存和虚拟内存的区分,系统如何通过PFN数据库管理内存,以及如何解决内存占用高的问题。通过分析内存分配和页错误,提供内存优化策略,例如减少页错误和识别不合理内存分配。同时,文章介绍了内存性能调优的重要性,并分享了相关优化方向和资源链接。
摘要由CSDN通过智能技术生成

本文主要讲述windows平台下应用程序性能测试的内存相关的知识,通过本文了解内存基本原理和分析内存占用问题。

一、内存是什么?

1.内存分为物理内存和虚拟内存

物理内存指通过物理内存条而获得的内存空间,虚拟内存是计算机系统内存管理的一种技术。它使得应用程序认为它拥有连续的可用的内存(一个连续完整的地址空间)。

2.两者都有系统约定的最大值

进程占用的内存一般是指物理内存,其中操作系统为每个进程的工作集定义了一个最小和最大工作集。每个进程的 工作集有最小工作集(20-50M)最大是45-345M

虚拟内存:每个32位的进程操作系统为其分配最大4G的线性虚拟地址空间,地址是从0X00000000~0XFFFFFFFF 其中低的2G留给进程,高的2G留给系统。

3.查看物理内存和虚拟内存

1)电脑配置

例如我的电脑配置是 :如下,安装的内存是16G。查看资源监视器里显示,所以平时所说的内存占用是指物理内存。

2)内存在资源管理器概念

例如这里进程: 物理内存(工作集)=可共享+专用工作集:是私人工作集中的内存数量与进程正在使用且可以由其他进程共享的内存数量的总和。
专用工作集:- 是工作集的一个子集,专用工作集专门描述了某个进程正在使用的且无法与其他进程共享的内存数量。
提交大小:是为某进程使用而保留的虚拟内存的数量。

3)虚拟内存查看
虚拟内存,用VMMAP工具查看。如下图

具体含义可以去网上搜索。其中虚拟内存有三种状态:

1)自由(free)是指内存还未使用。

2)当申请内存使用VirtualAlloc传入MEM_RESERVE执行预留(reserved)操作。

3)当真正访问内存的数据才执行提交(committed),传入MEM_COMMINT参数。

二、系统如何管理内存

1.系统使用PFN数据库

系统使用PFN(Page Frame Number)数据库来存储物理内存。分几类page list来存储,如下面的图

Freelis

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值