[問題] vector emplace_back 疑似page fault問題
開發平台(Platform): (Ex: Win10, Linux, ...) 
Linux
編譯器(Ex: GCC, clang, VC++...)+目標環境(跟開發平台不同的話需列出)
GCC
問題(Question):
上面那篇我有問估算vector在empalce_back(int)花的時間時,
發現疑似有page fault的情形,
但問題來了,我用/usr/bin/time -v ./a.out 去檢測,結果如下:
Major (requiring I/O) page faults: 0
Minor (reclaiming a frame) page faults: 343
看起來沒有發生硬性的page fault,而且我測試的機器記憶體有32GB,
這樣會遇到page fault也讓我有點驚訝,
另外我後來有加mlock,就可以避免在1024倍數次loop時時間變大到us的問題,
但我這時再用/usr/bin/time -v ./a.out 去檢測,結果跟沒有加mlock差不多,
這樣真的有改善page fault嗎? 讓我有點懷疑。
有沒有神人可以指點一二,感恩。
程式碼(Code):(請善用置底文網頁, 記得排版,禁止使用圖檔) 
#include <iostream>
#include <vector>
#include <sys/mman.h>
uint64_t get_tscp()
{
    uint64_t a, d;
    __asm__ volatile("rdtscp" : "=a"(a), "=d"(d));
    return (d << 32) | a;
}
int main(int argc, char *argv[])
{
    std::vector<int> v;
    int size = 4096;
    v.reserve(size);
    mlock(&v[0], sizeof(int)*size);
    for (int i = 0; i < size; ++i)
    {
        auto t1 = get_tscp();
        v.emplace_back(i);
        auto t2 = get_tscp();
        // std::cout << (t2 - t1) / 2.6 << std::endl;
    }
    return 0;
}
--
生死去來,棚頭傀儡,一線斷時,落落磊磊。
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 111.248.111.87 (臺灣)
※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1642107483.A.B08.html
推
01/14 13:02, 
                                3年前
                            , 1F
01/14 13:02, 1F
→
01/14 13:23, 
                                3年前
                            , 2F
01/14 13:23, 2F
推
01/14 13:24, 
                                3年前
                            , 3F
01/14 13:24, 3F
→
01/14 13:35, 
                                3年前
                            , 4F
01/14 13:35, 4F
→
01/14 13:35, 
                                3年前
                            , 5F
01/14 13:35, 5F
→
01/14 13:35, 
                                3年前
                            , 6F
01/14 13:35, 6F
→
01/14 13:44, 
                                3年前
                            , 7F
01/14 13:44, 7F
推
01/14 16:06, 
                                3年前
                            , 8F
01/14 16:06, 8F
→
01/14 18:19, 
                                3年前
                            , 9F
01/14 18:19, 9F
→
01/14 18:20, 
                                3年前
                            , 10F
01/14 18:20, 10F
→
01/14 18:22, 
                                3年前
                            , 11F
01/14 18:22, 11F
→
01/14 18:24, 
                                3年前
                            , 12F
01/14 18:24, 12F
→
01/14 18:25, 
                                3年前
                            , 13F
01/14 18:25, 13F
推
01/15 03:29, 
                                3年前
                            , 14F
01/15 03:29, 14F
→
01/15 03:29, 
                                3年前
                            , 15F
01/15 03:29, 15F
→
01/15 03:29, 
                                3年前
                            , 16F
01/15 03:29, 16F
推
01/15 14:30, 
                                3年前
                            , 17F
01/15 14:30, 17F
→
01/15 14:35, 
                                3年前
                            , 18F
01/15 14:35, 18F
→
01/15 14:36, 
                                3年前
                            , 19F
01/15 14:36, 19F
→
01/15 14:38, 
                                3年前
                            , 20F
01/15 14:38, 20F
→
01/15 14:39, 
                                3年前
                            , 21F
01/15 14:39, 21F
→
01/16 06:43, 
                                3年前
                            , 22F
01/16 06:43, 22F
→
01/16 06:43, 
                                3年前
                            , 23F
01/16 06:43, 23F
C_and_CPP 近期熱門文章
PTT數位生活區 即時熱門文章