<legend id='tlL8l'><style id='tlL8l'><dir id='tlL8l'><q id='tlL8l'></q></dir></style></legend>

  • <i id='tlL8l'><tr id='tlL8l'><dt id='tlL8l'><q id='tlL8l'><span id='tlL8l'><b id='tlL8l'><form id='tlL8l'><ins id='tlL8l'></ins><ul id='tlL8l'></ul><sub id='tlL8l'></sub></form><legend id='tlL8l'></legend><bdo id='tlL8l'><pre id='tlL8l'><center id='tlL8l'></center></pre></bdo></b><th id='tlL8l'></th></span></q></dt></tr></i><div id='tlL8l'><tfoot id='tlL8l'></tfoot><dl id='tlL8l'><fieldset id='tlL8l'></fieldset></dl></div>

    <small id='tlL8l'></small><noframes id='tlL8l'>

      1. <tfoot id='tlL8l'></tfoot>
        • <bdo id='tlL8l'></bdo><ul id='tlL8l'></ul>
      2. 使用MALLOC_MMAP_THRESHOLD_和MALLOC_MMAP_MAX_减少内存碎片

        Reduce memory fragmentation with MALLOC_MMAP_THRESHOLD_ and MALLOC_MMAP_MAX_(使用MALLOC_MMAP_THRESHOLD_和MALLOC_MMAP_MAX_减少内存碎片)

        1. <small id='gvivQ'></small><noframes id='gvivQ'>

          • <bdo id='gvivQ'></bdo><ul id='gvivQ'></ul>
            <legend id='gvivQ'><style id='gvivQ'><dir id='gvivQ'><q id='gvivQ'></q></dir></style></legend>

              <tbody id='gvivQ'></tbody>

            • <i id='gvivQ'><tr id='gvivQ'><dt id='gvivQ'><q id='gvivQ'><span id='gvivQ'><b id='gvivQ'><form id='gvivQ'><ins id='gvivQ'></ins><ul id='gvivQ'></ul><sub id='gvivQ'></sub></form><legend id='gvivQ'></legend><bdo id='gvivQ'><pre id='gvivQ'><center id='gvivQ'></center></pre></bdo></b><th id='gvivQ'></th></span></q></dt></tr></i><div id='gvivQ'><tfoot id='gvivQ'></tfoot><dl id='gvivQ'><fieldset id='gvivQ'></fieldset></dl></div>

                  <tfoot id='gvivQ'></tfoot>
                  本文介绍了使用MALLOC_MMAP_THRESHOLD_和MALLOC_MMAP_MAX_减少内存碎片的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着跟版网的小编来一起学习吧!

                  问题描述

                  我一直在试验使用MALLOC_MMAP_THRESHOLD_和MALLOC_MMAP_MAX_ENV变量来影响长期运行的Python2进程中的内存管理。 请参见http://man7.org/linux/man-pages/man3/mallopt.3.html

                  我是从这个错误报告中得到这个想法的:http://bugs.python.org/issue11849

                  我得到的结果是令人鼓舞的:内存碎片减少了,长时间运行的进程使用的内存中可见的典型高水位线更低。

                  我唯一担心的是,在使用如此低级别的调整时,是否有其他副作用可能会产生反作用。有没有人有使用它们的经验?

                  下面是一个示例脚本,它在生成大型字典的脚本中显示这些变量如何影响RSS内存: https://gist.github.com/lbolla/8e2640133032b0a6bb9c 只需运行"alloc.sh"并比较输出。以下是我的输出:

                  MALLOC_MMAP_THRESHOLD_=None MALLOC_MMAP_MAX_=None
                  N=9 RSS=120968
                  MALLOC_MMAP_THRESHOLD_=512 MALLOC_MMAP_MAX_=None
                  N=9 RSS=157008
                  MALLOC_MMAP_THRESHOLD_=1024 MALLOC_MMAP_MAX_=None
                  N=9 RSS=98484
                  MALLOC_MMAP_THRESHOLD_=2048 MALLOC_MMAP_MAX_=None
                  N=9 RSS=98484
                  MALLOC_MMAP_THRESHOLD_=4096 MALLOC_MMAP_MAX_=None
                  N=9 RSS=98496
                  MALLOC_MMAP_THRESHOLD_=100000 MALLOC_MMAP_MAX_=None
                  N=9 RSS=98528
                  MALLOC_MMAP_THRESHOLD_=512 MALLOC_MMAP_MAX_=0
                  N=9 RSS=121008
                  MALLOC_MMAP_THRESHOLD_=1024 MALLOC_MMAP_MAX_=0
                  N=9 RSS=121008
                  MALLOC_MMAP_THRESHOLD_=2048 MALLOC_MMAP_MAX_=0
                  N=9 RSS=121012
                  MALLOC_MMAP_THRESHOLD_=4096 MALLOC_MMAP_MAX_=0
                  N=9 RSS=121000
                  MALLOC_MMAP_THRESHOLD_=100000 MALLOC_MMAP_MAX_=0
                  N=9 RSS=121008
                  MALLOC_MMAP_THRESHOLD_=512 MALLOC_MMAP_MAX_=16777216
                  N=9 RSS=157004
                  MALLOC_MMAP_THRESHOLD_=1024 MALLOC_MMAP_MAX_=16777216
                  N=9 RSS=98484
                  MALLOC_MMAP_THRESHOLD_=2048 MALLOC_MMAP_MAX_=16777216
                  N=9 RSS=98484
                  MALLOC_MMAP_THRESHOLD_=4096 MALLOC_MMAP_MAX_=16777216
                  N=9 RSS=98496
                  MALLOC_MMAP_THRESHOLD_=100000 MALLOC_MMAP_MAX_=16777216
                  N=9 RSS=98528
                  

                  如您所见,在本例中使用的RSS比普通Python少20%左右。

                  推荐答案

                  使用此调整已经投入生产很长时间了,没有任何问题。 因此,在某些情况下,我认为在长时间运行的Python进程中提高内存使用率是一个可行的选择。

                  这篇关于使用MALLOC_MMAP_THRESHOLD_和MALLOC_MMAP_MAX_减少内存碎片的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持跟版网!

                  本站部分内容来源互联网,如果有图片或者内容侵犯了您的权益,请联系我们,我们会在确认后第一时间进行删除!

                  相关文档推荐

                  groupby multiple coords along a single dimension in xarray(在xarray中按单个维度的多个坐标分组)
                  Group by and Sum in Pandas without losing columns(Pandas中的GROUP BY AND SUM不丢失列)
                  Group by + New Column + Grab value former row based on conditionals(GROUP BY+新列+基于条件的前一行抓取值)
                  Groupby and interpolate in Pandas(PANDA中的Groupby算法和插值算法)
                  Pandas - Group Rows based on a column and replace NaN with non-null values(PANAS-基于列对行进行分组,并将NaN替换为非空值)
                  Grouping pandas DataFrame by 10 minute intervals(按10分钟间隔对 pandas 数据帧进行分组)
                  • <small id='ldtbg'></small><noframes id='ldtbg'>

                    <tfoot id='ldtbg'></tfoot>
                    • <legend id='ldtbg'><style id='ldtbg'><dir id='ldtbg'><q id='ldtbg'></q></dir></style></legend>
                      <i id='ldtbg'><tr id='ldtbg'><dt id='ldtbg'><q id='ldtbg'><span id='ldtbg'><b id='ldtbg'><form id='ldtbg'><ins id='ldtbg'></ins><ul id='ldtbg'></ul><sub id='ldtbg'></sub></form><legend id='ldtbg'></legend><bdo id='ldtbg'><pre id='ldtbg'><center id='ldtbg'></center></pre></bdo></b><th id='ldtbg'></th></span></q></dt></tr></i><div id='ldtbg'><tfoot id='ldtbg'></tfoot><dl id='ldtbg'><fieldset id='ldtbg'></fieldset></dl></div>

                          <tbody id='ldtbg'></tbody>
                            <bdo id='ldtbg'></bdo><ul id='ldtbg'></ul>