我如何垃圾收集 Elixir REPL,iex?
How do I garbage collect the Elixir REPL, iex?
在 python 中,如果我正在使用 REPL,我可以使用 import gc; gc.collect()
强制垃圾收集。我如何对 Elixir 的 iex
REPL 做同样的事情?
大变量绑定前的例子:
因此使用了大约 700M 的 RAM 和 300M 的交换空间。
大数据绑定到变量后 xx
(从数据库中获取 500 个时间序列,每个时间序列包含 7000 个结构):
所以现在大约 2.2G 使用 500M swap。现在将 xx 重新绑定到一些小东西:
但是使用的内存并没有真正改变。仍然是 2.2G RAM 和大约 500M 的交换空间。但是,如果我退出 IEX:
回到使用的 400M 内存。因此 re-bound 的大数据绑定并未在 iex
内被垃圾收集。我怎样才能强制它这样做?
这里有关于此的信息:https://erlang.org/doc/apps/erts/GarbageCollection.html
也许只是尝试做:
:erlang.garbage_collect()
在 python 中,如果我正在使用 REPL,我可以使用 import gc; gc.collect()
强制垃圾收集。我如何对 Elixir 的 iex
REPL 做同样的事情?
大变量绑定前的例子:
因此使用了大约 700M 的 RAM 和 300M 的交换空间。
大数据绑定到变量后 xx
(从数据库中获取 500 个时间序列,每个时间序列包含 7000 个结构):
所以现在大约 2.2G 使用 500M swap。现在将 xx 重新绑定到一些小东西:
但是使用的内存并没有真正改变。仍然是 2.2G RAM 和大约 500M 的交换空间。但是,如果我退出 IEX:
回到使用的 400M 内存。因此 re-bound 的大数据绑定并未在 iex
内被垃圾收集。我怎样才能强制它这样做?
这里有关于此的信息:https://erlang.org/doc/apps/erts/GarbageCollection.html
也许只是尝试做:
:erlang.garbage_collect()