我的程序使用了所有可用內存,所以我想檢查哪些函數和摘要會破壞我的項目。我決定用Memprof,所以我安裝了編譯器和編譯的代碼才能使用命令使用Memprof進行OCaml內存分析 - TypeRex Utility
ocamlfind ocamlopt -package xml-light unix.cmxa str.cmxa -c -g NKJPxmlbasics.ml NKJP.mli NKJP.ml test.ml
,然後運行在教程
ocp-memprof --exec ./test
建議,但有錯誤而不是結果:
Error: no memory profiling information found. Possible causes: - the application was not compiled with memory profiling support; - the application exited before any major garbage collection was performed.
我甚至管理一次,使其工作,但我不知道它是如何發生的 http://memprof.typerex.org/users/97beffbaec332eb7b2a048b94f7a38cf/2015-12-15_17-33-50_ab17218e800fe0a68fc2cfa54c13bfa6_16194/index.html
在這種情況下,有什麼方法可以正確使用這個工具嗎?我錯過了什麼?
什麼'which ocamlopt'返回?你確定你的可執行文件的名字是'test'嗎?在「內存不足」崩潰之前,您的應用程序運行了很長時間? –
我的應用程序沒有崩潰,但在設法最終識別內存之前需要大約3 GB的空間。我發現在一個遞歸函數中拼寫錯誤,導致內存泄漏。 – SzymonPajzert