Windows核心编程 - 探索虚拟内存

1. 系统信息

    操作系统中有很多参数是由系统所运行的主机所决定的,如页面大小和分配粒度等,可使用GetSystemInfo函数来获取与主机相关的参数。为了让32位应用程序能够在64位版本Windows上运行,Microsoft提供了一个称为Windows 32-bit On Windows 64-bit的模拟层,称为WOW64。当32位应用程序在WOW64上运行时,调用GetSystemInfo返回的值和64位应用程序调用GetSystemInfo所返回的值可能会有所不同。如果想知道进程是否在WOW64上运行,可调用IsWow64Process函数,只有当32位应用程序在WOW64上运行时,该函数的pbWow64Process参数才会被置为TRUE。如想获取原来的系统信息,可调用GetNativeSystemInfo函数 。

2.虚拟内存状态

     可通过GlobalMemoryStatus函数来取得当前内存状态的动态信息。如果 预计应用会在装有4GB内存的机器上运行,或者页交换文件的大小可能会大于4GB,则应该调用GlobalMemoryStatusEx函数。

3.NUMA机器中的内存管理

     非统一内存访问(Non-Uniform Memory Access , NUMA)机器中的CPU既能访问自己节点的内存,也可以访问其它节点的内存,调用GetNumaProcessNode函数可以知道一个CPU驻留在哪个NUMA节点中。

4.确定地址空间的状态

    可通过调用VirtualQuery函数查询与地址空间中的内存地址有关的特定信息,比如大小、存储器类型以及保护属性。还有另一个函数 VirtualQueryEx可以查询另一个进程的内存信息。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值