<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_减少内存碎片

        时间:2024-08-22

        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_减少内存碎片的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持跟版网!

                  上一篇:如何正确传递子进程参数 下一篇:使用MSI-Django的Azure SQL Server连接

                  相关文章

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

                  <tfoot id='ldtbg'></tfoot>
                2. <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>

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