1

我的程序使用了所有可用内存,所以我想检查哪些函数和摘要破坏了我的项目。我决定使用 Memprof,所以我安装了他们的编译器并使用命令编译了我的代码

ocamlfind ocamlopt -package xml-light unix.cmxa str.cmxa -c -g  NKJPxmlbasics.ml NKJP.mli NKJP.ml test.ml

然后按照教程中的建议运行

ocp-memprof --exec ./test

但是有错误而不是结果:

错误:未找到内存分析信息。可能的原因: - 应用程序未使用内存分析支持进行编译;- 应用程序在执行任何主要垃圾收集之前退出。

我什至设法让它工作,但我不知道它是怎么发生的 http://memprof.typerex.org/users/97beffbaec332eb7b2a048b94f7a38cf/2015-12-15_17-33-50_ab17218e800fe0a68fc2cfa54c13bfa6_16194/index.html

在这种情况下有什么方法可以正确使用这个工具吗?我错过了什么?

4

1 回答 1

1

ocamlfind ... -c ...不生成任何可执行文件。因此,./test您正在运行的可能是由先前的命令生成的,可能没有 memprof 开关。

于 2015-12-28T08:27:43.643 回答