乡下人产国偷v产偷v自拍,国产午夜片在线观看,婷婷成人亚洲综合国产麻豆,久久综合给合久久狠狠狠9

  • <output id="e9wm2"></output>
    <s id="e9wm2"><nobr id="e9wm2"><ins id="e9wm2"></ins></nobr></s>

    • 分享

      tcmalloc jemalloc 和ptmalloc 對(duì)比

       lchjczw 2013-09-15

      ptmalloc 是glibc的內(nèi)存分配管理

      tcmalloc 是google的內(nèi)存分配管理模塊

      jemalloc 是BSD的提供的內(nèi)存分配管理

      三者的性能對(duì)比參考從網(wǎng)上的一個(gè)圖如下:

      image

      自己測(cè)試了一下:

      代碼如下:

         1: #include <iostream>                                                                                                      
         2: #include <map>
         3:  
         4: using namespace std;
         5: int main(int argc, char**argv) {
         6:   cout << "Hello world" << endl;
         7:   std::map<int,int> int_map;
         8:   for (int i = 0; i < 10000000; ++i) {
         9:     int_map.insert(std::map<int,int>::value_type(i,i));
        10:   }
        11:   return 0;
        12: }

      都是執(zhí)行一個(gè)map insert 100W次操作。

      為了測(cè)試方便,我們生成了3個(gè)binary,分別鏈接使用jemalloc和tcmalloc 和ptmalloc的庫做對(duì)比:

      ldd jemalloc_test
          linux-vdso.so.1 =>  (0x00007fffc6fc3000)
          libjemalloc.so.1 => /usr/local/lib/libjemalloc.so.1 (0x00007f45181aa000)
          libstdc++.so.6 => /usr/lib/x86_64-linux-gnu/libstdc++.so.6 (0x00007f4517ea4000)
          libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007f4517c1e000)
          libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 (0x00007f4517a08000)
          libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f4517673000)
          libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007f4517454000)
          libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007f4517250000)
          /lib64/ld-linux-x86-64.so.2 (0x00007f45183f2000)

      ldd tcmalloc_test
          linux-vdso.so.1 =>  (0x00007fff94160000)
          libtcmalloc.so.0 => /usr/lib/libtcmalloc.so.0 (0x00007f20107dc000)
          libstdc++.so.6 => /usr/lib/x86_64-linux-gnu/libstdc++.so.6 (0x00007f20104d6000)
          libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007f2010250000)
          libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 (0x00007f201003a000)
          libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f200fca5000)
          libunwind.so.7 => /usr/lib/libunwind.so.7 (0x00007f200fa8b000)
          /lib64/ld-linux-x86-64.so.2 (0x00007f2010a68000)

      ldd ptmalloc_test
          linux-vdso.so.1 =>  (0x00007fff08501000)
          libstdc++.so.6 => /usr/lib/x86_64-linux-gnu/libstdc++.so.6 (0x00007f7e6c156000)
          libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007f7e6bed1000)
          libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 (0x00007f7e6bcba000)
          libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f7e6b925000)
          /lib64/ld-linux-x86-64.so.2 (0x00007f7e6c483000)

      然后分別執(zhí)行各程序,使用time統(tǒng)計(jì)時(shí)間如下:

      time./jemalloc_test
      Hello world

      real    0m9.927s
      user    0m9.650s
      sys    0m0.250s

      time ./tcmalloc_test
      Hello world

      real    0m9.836s
      user    0m9.410s
      sys    0m0.410s

      time ./ptmalloc_test
      Hello world

      real    0m11.890s
      user    0m11.520s
      sys    0m0.360s

       

      jemalloc和tcmalloc的性能不分伯仲,而ptmalloc則要低一些。

      這里簡(jiǎn)單介紹下性能。后面抽時(shí)間再介紹下各自的實(shí)現(xiàn)原理。

        本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
        轉(zhuǎn)藏 分享 獻(xiàn)花(0

        0條評(píng)論

        發(fā)表

        請(qǐng)遵守用戶 評(píng)論公約

        類似文章 更多