当我使用以下命令运行我的Ruby程序时:
valgrind --tool=memcheck ruby hello.rb
我每次都得到堆,泄漏和错误摘要的输出正好四次。
我所有的Ruby程序都是加载一个包含10,000个字符的文本文件。当我使用相同的命令运行它们时,Memcheck对我的类似Python程序工作得很好。为什么我得到四个输出?是否有一些表明使用了正确的内存量?我正在测量我的硕士论文的记忆消耗,所以我真的需要找出导致这个问题的原因!
谢谢!
默认情况下,valgrind不会“跟随”子进程(即不跟随调用exec系统调用的分叉子进程)。
但默认情况下,不执行exec的分叉子将输出一些结果。使用--child-silent-after-fork = yes应该使forking not execing child的输出消失。