# Heap 分析 ###### tags: `Lab` `Linux` `Arc` 使用 `valgrind` 效能分析工具分析 `lenet` , `yolov3-tiny` 在 `MDFI` 以及 `Darknet` 所消耗 `heap` 的比較 >指令參考 >[5.3.3. 使用 MASSIF 側寫堆積與堆疊空間](https://access.redhat.com/documentation/zh-tw/red_hat_enterprise_linux/6/html/performance_tuning_guide/ch05s03s03) > ## Darknet for yolov3-tiny 1. 在 `makefile` 中要把 `DEBUG` 參數改 `1` 並重新 `make` 2. 執行 `darkent` 並產生 `massif.out` `valgrind --tool=massif ./darknet detect cfg/yolov3-tiny.cfg yolov3-tiny.weights data/dog.jpg` 3. 分析 `ms_print massif.out.pid` 4. 結果 ![](https://i.imgur.com/LkyGmws.png) `Detailed snapshots` 內的數字後面有寫 `(peak)` 的代表 `max heap use` ,可以在執行後的結果找到對應的值大約是 240 MB ![](https://i.imgur.com/iVGo2Ro.png) ## Darknet for lenet 1. `valgrind --tool=massif ./darknet classifier predict cfg/mnist.dataset cfg/mnist_lenet.cfg mnist_lenet_final.weights 7.jpeg` ![](https://i.imgur.com/EgJKryj.png) >7.jpeg 的大小約 2.3 KB 左右 > 2. 結果 ![](https://i.imgur.com/dsYNUiS.png) >max heap 長到 4G !!!?????? > ## MDFI for yolov3-tiny ![](https://i.imgur.com/nWW0nDn.png) >約 60 MB > ## MDFI for lenet 指令 `./darknet classifier predict cfg/mnist.dataset cfg/mnist_lenet.cfg weight/mnist_lenet_cpu.weights 7.jpeg` 結果 ![](https://i.imgur.com/Op6IMVl.png) >結果有點奇怪,MDFI 的 classfier 部份應該有點問題 > heap 分析 ![](https://i.imgur.com/Ww9rWNZ.png) ![](https://i.imgur.com/oXi46nt.png) >從第二張圖可以看到再做 `classfier` 的時候 `heap` 暴漲到 800 多 MB