AWE (Address Windows Extension) 可以使用开启 PAE 后普通应用程序无法使用到的内存,这部分内存系统可能无法识别,但通过 AWE 则可以完美访问。操作 AWE 内存的具体步骤如下,大部分内容来自北风网视频教程。 1、开窗 VirtualAlloc + MEM_PHYSICAL,明确...
Windows 堆内存是性能仅次于虚拟内存的内存管理机制。它不像虚拟内存,每次分配至少是一个页面(4K),它可以灵活的只分配 1 个字节来使用,不浪费内存的空间。但你分配的内存必须由自己维护释放。下面演示了堆内存的使用方法。 最简单的堆使用123456789101112131415161718192021222...
perl 语法的变态在下面的代码中体现更甚,一条没头没尾的正则,不知道的还以为是语法错误,实际它是可以正常执行的。 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051#!per...
我也算学了基本脚本语言的人,Au3、Pyhon、PHP、JavaScript、Shell 都用过,但这个家伙是有点让我膛目,语法简直简练到不能再简练了。一下午的时间看了看他的基础语法和示例,做一下记录。 123456789101112131415161718192021222324252627282930313...
以前介绍过 VMMap 工具是可以查看一个进程中的虚拟内存信息的,其内部的实现原理就是调用 VirtualQueryEx 函数(支持查看其他进程)得到一个进程的虚拟内存信息。根据学习的视频我也自己实现了一下,但我们用到的是 VirtualQuery 来查看自身进程的内容。 1234567891011121314...
大页面的的应用场景及注意事项如下(出自北风网 VC++ 系列视频教程,请到官网下载尊重版权): 大页面的内存是不能换页的,只能常驻于RAM中,不会存在页面文件中 (即大页面不会换页,物理内存紧张时慎用) 大页面的内存算作进程的私有页面,不会统计在进程工作集中 因为大页面尺寸远大于小页面尺寸,分配一个大页面必须要...
虚拟内存一次保留(MEM_RESERVE 可以理解为申请)最小就是 64K,一次提交(MEM_COMMIT)至少是一个页面 4K。而往往有的时候我们不知道我们到底需要多少虚拟内存才够使用,所以可能需要动态分配,下面例子演示了如何使用结构化异常机制,动态根据需要分配内存给一个不断写入新字符的空间使用。例子来自 MS...
曾经在杭州一家公司做技术售后的时候,有一个印象深刻的问题,就是腾讯游戏《剑灵》在 Windows 32 位平台上报错的问题:http://support.icafe8.com/technologynews/hotfault/4708.html。综述原因就是在 32 位平台下虚拟内存地址空间不足(官方给的是这个答复...
在使用 MFC 框架编写代码时,总会遇到一个问题就是需要看一下 MFC 框架中某个函数是如何实现的,但当你 F12 跟踪到某个函数声明的时候,再继续跟踪你会发现无法继续跟踪下去了,因为函数实现的代码并不在工程项目管理范围内,IDE 不知道到哪去找这个函数的实现。以往的一些方法都是在 MFC 文件夹目录下直接搜索 ...
获取开机时间并不像应用层简单的调用一个 API 就搞定了,在内核需要 GetTickCount 获取一个滴答数,然后把这个滴答数转为毫秒,再进行运算即可得出开的时间。以下是获取开机多少分钟和当前系统时间的结果,代码在下方: 12tick count = 2 minutes.time = 2016-04-01 00...