27 windows_27_windows_Virtual_Memory 虚拟内存

windows_27_windows_Virtual_Memory 虚拟内存

  1. // windows_27_windows_Virtual_Memory.cpp : 定义控制台应用程序的入口点。
  2. //
  3. #include "stdafx.h"
  4. #include <windows.h>
  5. #include <conio.h>
  6. void Status( )
  7. {
  8. MEMORYSTATUS status = { 0 };
  9. status.dwLength = sizeof( status );
  10. GlobalMemoryStatus( &status );
  11. printf( "总共的物理内存:%u\n", status.dwTotalPhys);
  12. printf( "剩余的物理内存:%u\n", status.dwAvailPhys);
  13. printf( "总共的分页:%u\n", status.dwTotalPageFile);
  14. printf( "剩余的分布:%u\n", status.dwAvailPageFile);
  15. printf( "总共的虚拟:%u\n", status.dwTotalVirtual);
  16. printf( "剩余的虚拟:%u\n", status.dwAvailVirtual);
  17. printf( "内存使用率:%d\n",status.dwMemoryLoad );
  18. }
  19. void Virual( )
  20. {
  21. Status( );
  22. //地址分配 - 预订
  23. CHAR *pszBuf = (CHAR*)VirtualAlloc( NULL, 1024 * 1024 * 1024, MEM_RELEASE, PAGE_READWRITE );
  24. getchar( );
  25. Status( );
  26. //内存提交
  27. pszBuf = (CHAR*)VirtualAlloc( NULL, 1024 * 1024 * 1024, MEM_COMMIT, PAGE_READWRITE );
  28. Status( );
  29. if (pszBuf == NULL)
  30. {
  31. printf( "failed!\n" );
  32. }
  33. getchar( );
  34. //strcpy_s( pszBuf,10, "hello virtual\n" );
  35. printf( "%s", pszBuf );
  36. VirtualFree( pszBuf, 1024 * 1024 * 1024, MEM_RELEASE );
  37. }
  38. int _tmain(int argc, _TCHAR* argv[])
  39. {
  40. Virual( );
  41. Status( );
  42. return 0;
  43. }

来自为知笔记(Wiz)

时间: 2024-08-19 18:37:25

27 windows_27_windows_Virtual_Memory 虚拟内存的相关文章

吉萨法律时间浪费拉丝粉;阿里山

http://www.ebay.com/cln/tmotshu/book/157890749018/2015.01.27.html http://www.ebay.com/cln/tmotshu/book/157890755018/2015.01.27.html http://www.ebay.com/cln/tmotshu/book/157890757018/2015.01.27.html http://www.ebay.com/cln/tmotshu/book/157890775018/20

为什么linux下多线程程序如此消耗虚拟内存【转】

转自:http://blog.csdn.net/chen19870707/article/details/43202679 权声明:本文为博主原创文章,未经博主允许不得转载. 目录(?)[-] 探索 灵光一现 刨根问底 意外发现 Author:Echo Chen(陈斌) Email:[email protected] Blog:Blog.csdn.net/chen19870707 Date:Jan.27th, 2015 最近游戏已上线运营,进行服务器内存优化,发现一个非常奇妙的问题,我们的认证服

为什么linux下多线程程序如此消耗虚拟内存

Author:Echo Chen(陈斌) Email:[email protected] Blog:Blog.csdn.net/chen19870707 Date:Jan.27th, 2015 最近游戏已上线运营,进行服务器内存优化,发现一个非常奇妙的问题,我们的认证服务器(AuthServer)负责跟第三方渠道SDK打交道(登陆和充值),由于采用了curl阻塞的方式,所以这里开了128个线程,奇怪的是每次刚启动的时候占用的虚拟内存在2.3G,然后每次处理消息就增加64M,增加到4.4G就不再增

JIURL文档-Linux的虚拟内存与分页机制(x86-64位)(一)

作者:JIURL 日期:2015年10月30日 分页机制 Linux(x64CPU)使用基于分页机制的虚拟内存.每个进程有256TB(48位)的虚拟地址空间.基于分页机制,这256TB地址空间的一些部分 被映射了物理内存,一些部分什么也没有映射.程序中使用的都是256TB地址空间中的虚拟地址.而访问物理内存,需要使用物理地址. 物 理地址(physical address):放在寻址总线上的地址.放在寻址总线上,如果是读,电路根据这个地址每位的值就将相应地址的物理内存中的数据放到数据总线中传输.

如何增加Ubuntu的虚拟内存

今日编译某软件系统时,出现如下错误: virtual memory exhausted: Cannot allocate memory 为解决此问题,找到如下解决方案. 1.打开终端,切换到root用户,输入:free -m查看内存状态[[email protected] lxt]# free -mtotal used free shared buffers cachedMem: 498 357 141 0 27 162-/+ buffers/cache: 167 331Swap: 1023 0

对Linux 虚拟内存和物理内存的理解以及Linux下怎样增加虚拟内存

首先,让我们看下linux虚拟内存: 第一层理解 1.         每个进程都有自己独立的4G内存空间,各个进程的内存空间具有类似的结构 2.       一个新进程建立的时候,将会建立起自己的内存空间,此进程的数据,代码等从磁盘拷贝到自己的进程空间,哪些数据在哪里,都由进程控制表中的task_struct记录,task_struct中记录中一条链表,记录中内存空间的分配情况,哪些地址有数据,哪些地址无数据,哪些可读,哪些可写,都可以通过这个链表记录 3.       每个进程已经分配的内存

Redis 笔记与总结6 Redis 高级应用之 事务处理、持久化操作、pub_sub、虚拟内存

3.事务处理 redis 对事务的支持目前还比较简单. redis 只能保证一个 client 发起的事务中的命令可以连续的执行,而中间不会插入其他 client 的命令. 由于 redis 是单线 程来处理所有 client 的请求的所以做到这点是很容易的.一般情况下redis 在接受到一个 client 发来的命令后会立即处理并 返回处理结果,但是当一个client 在 一个连接中发出 multi 命令时,这个连接会进入一个事务上下文,该连接后续的命令并不是立即执行,而是先放到一个队列中.当

释放C盘空间的27招优化技巧

主要讲讲Windows操作系统在C盘空间不足的情况下,我们可以通过那些具体手段来增加C盘空间. 1.打开"我的电脑"-"工具"-"文件夹选项"-"查看"-在"显示所有文件和文件夹"选项前打勾-"确定" 2.删除以下文件夹中的内容: x:\Documents and Settings\用户名\Cookies\下的所有文件(保留index文件) x:\Documents and Settin

Linux进程地址空间和虚拟内存

一.虚拟内存 先来看一张图(来自<Linux内核完全剖析>),如下: 分段机制:即分成代码段,数据段,堆栈段.每个内存段都与一个特权级相关联,即0~3,0具有最高特权级(内核),3则是最低特权级(用户),每当程序试图访问(权限又分为可读.可写和可执行)一个段时,当前特权级CPL就会与段的特权级进行比较,以确定是否有权限访问.每个特权级都有自己的程序栈,当程序从一个特权级切换到另一个特权级上执行时,堆栈段也随之改换到新级别的堆栈中. 段选择符:每个段都有一个段选择符.段描述符指明段的大小.访问权