当我使用以下命令运行Ruby程序时:
valgrind --tool=memcheck ruby hello.rb
我每次都会得到四次正确的堆,泄漏和错误摘要输出。
我的Ruby程序所做的就是加载一个包含10,000个字符的文本文件。当我使用相同的命令运行类似的Python程序时,Memcheck可以正常工作。为什么我得到四个输出?其中有些指示使用的内存量正确吗?我正在测量硕士论文的内存消耗,所以我真的需要找出造成这种情况的原因!
谢谢!
答案 0 :(得分:0)
默认情况下,valgrind不“关注”子进程(即不遵循 调用exec系统调用的派生孩子。
但是默认情况下,不执行的分叉子代将输出一些结果。 使用--child-silent-after-fork = yes应该不会使分叉的输出 处死孩子的人消失了。