C++ 意外的minflt(小页面错误)

C++ 意外的minflt(小页面错误),c++,linux,C++,Linux,轻微的页面错误意味着:需要虚拟内存映射真实内存,但我发现我的测试代码在访问使用过的内存时有一些最小页面错误。 我的测试代码: #include <iostream> #include <stdint.h> #include <stdlib.h> #include <unistd.h> using namespace std; int main() { uint64_t len = 1024ll * 128; //128k uin

轻微的页面错误意味着:需要虚拟内存映射真实内存,但我发现我的测试代码在访问使用过的内存时有一些最小页面错误。 我的测试代码:

#include <iostream>
#include <stdint.h>
#include <stdlib.h>
#include <unistd.h>

using namespace std;

int main() {
    uint64_t len = 1024ll * 128; //128k
    uint32_t times = 1000000000;
    char *p = new char[len];
    for (uint32_t t = 0; t < times; ++t) {
      for (uint64_t i = 0; i < len; ++i) {
          *(p + i) = 100;
      }
    }
    delete[] p;
    return 0;
}
minflt/s:34=34*4K=136K

我的测试代码中的数组=128K


当访问已用内存时,为什么我的测试代码产品minflt?

为什么
*(p+i)=128
而不是
p[i]=128?而且,
128
可能会溢出
char
通常为8位,并且有符号,这使得它能容纳的最大值为127。我更改了我的代码。而代码> G++Me.cc-O主STD= C++ 11 O2更好,但在C标题(代码头>代码> <代码> >下,C++代码头>代码> <代码> -并且不需要这个程序的<代码>、<代码> STDLIB .h或非C++标准>代码> UNISST.H./COD>。旁注。更新的
g++
clang++
03:40:05 PM   UID       PID  minflt/s  majflt/s     VSZ    RSS   %MEM  Command
03:40:06 PM     0     42379     34.00      0.00   12672   1196   0.00  main
03:40:07 PM     0     42379      0.00      0.00   12672   1196   0.00  main
03:40:08 PM     0     42379      0.00      0.00   12672   1196   0.00  main
03:40:09 PM     0     42379      0.00      0.00   12672   1196   0.00  main
03:40:10 PM     0     42379      0.00      0.00   12672   1196   0.00  main
03:40:11 PM     0     42379      0.00      0.00   12672   1196   0.00  main
03:40:12 PM     0     42379      0.00      0.00   12672   1196   0.00  main
03:40:13 PM     0     42379      0.00      0.00   12672   1196   0.00  main
03:40:14 PM     0     42379     34.00      0.00   12672   1196   0.00  main
03:40:15 PM     0     42379      0.00      0.00   12672   1196   0.00  main
03:40:16 PM     0     42379      0.00      0.00   12672   1196   0.00  main
03:40:17 PM     0     42379      0.00      0.00   12672   1196   0.00  main
03:40:18 PM     0     42379      0.00      0.00   12672   1196   0.00  main
03:40:19 PM     0     42379      0.00      0.00   12672   1196   0.00  main
03:40:20 PM     0     42379      0.00      0.00   12672   1196   0.00  main
03:40:21 PM     0     42379      0.00      0.00   12672   1196   0.00  main
03:40:22 PM     0     42379      0.00      0.00   12672   1196   0.00  main
03:40:23 PM     0     42379      0.00      0.00   12672   1196   0.00  main
03:40:24 PM     0     42379      0.00      0.00   12672   1196   0.00  main
03:40:25 PM     0     42379      0.00      0.00   12672   1196   0.00  main
03:40:26 PM     0     42379      0.00      0.00   12672   1196   0.00  main
03:40:27 PM     0     42379      0.00      0.00   12672   1196   0.00  main
03:40:28 PM     0     42379     34.00      0.00   12672   1196   0.00  main
03:40:29 PM     0     42379      0.00      0.00   12672   1196   0.00  main
03:40:30 PM     0     42379      0.00      0.00   12672   1196   0.00  main