我使用Meck来模拟我所拥有的一些外部服务的行为,纯粹是为了负载测试和分析我的系统,但它给我带来了一些问题。基本上我生成了很多工作进程,如果没有任何调用它们会在10秒后超时,但是当我有meck覆盖对外部进程的调用时,它们似乎超时并按预期退出,但是它们从不被垃圾回收,导致我的应用程序内存使用情况随着更多工作人员的产生而不断上升
答案 0 :(得分:0)
似乎这是由于Erlang如何处理二进制文件和引用:http://dieswaytoofast.blogspot.co.uk/2012/12/erlang-binaries-and-garbage-collection.html
我的解决方案是只有一个宏定义应该使用的函数,并在编译时切换伪函数,现在似乎有效