017 虚拟内存 64位及内存对其 3

# 64位及内存对其
  ● 内存对齐
    ○ 内存取%页面大小
    ○ 如果内存没有对齐
      CPU无法正常读取数据
      CPU会使用错位的方式读取数据
      延缓我们对数据的操作性

  ● 获取页面大小
    ○ AMD INTER CPU x64 x86 的CPU
      页面大小 4kb
    ○ IA64 英特尔 的服务器平台
      至强CPU系列
      页面对其大小是 8kb
    ○ IA64程序运行
      32位程序

 

读取内存页面的大小

1 #include <windows.h>
2 #include <stdio.h>
3 int main()
4 {
5     SYSTEM_INFO systemInfo = {0};
6     GetSystemInfo(&systemInfo);
7     printf("%d",systemInfo.dwPageSize);    //页面大小 4kb 获取页面大小
8     return 0;
9 }

 

 

 

  ● 判断32位程序是否在64位系统下运行

 1 #include <windows.h>
 2 #include <stdio.h>
 3 #include <Shlwapi.h>
 4 
 5 #pragma comment( lib, "shlwapi.lib")
 6 int main()
 7 {
 8     BOOL bIs64;
 9     IsWow64Process(INVALID_HANDLE_VALUE, &bIs64);
10     BOOL Os =  IsOS(OS_WOW6432);
11     if(bIs64)
12         printf("32位进程运行在64位系统下!\r\n");
13     if(Os)
14         printf("Os判断 32位进程运行在64位系统下!\r\n");
15     SYSTEM_INFO systemInfo = {0};
16     GetSystemInfo(&systemInfo);
17     printf("%d",systemInfo.dwPageSize);    //页面大小 4kb 获取页面大小
18     return 0;
19 }

 

posted @ 2017-07-17 10:39  ☆﹎夜﹎☆  阅读(174)  评论(0编辑  收藏  举报