作者hsucheng (Marshall)
看板C_and_CPP
標題[問題] 如何知道什麼東西占用的空間最大?
時間Mon Aug 28 17:29:47 2017
開發平台(Platform): (Ex: Win10, Linux, ...)
Win7 VS2015
編譯器(Ex: GCC, clang, VC++...)+目標環境(跟開發平台不同的話需列出)
C++
額外使用到的函數庫(Library Used): (Ex: OpenGL, ...)
opencv
問題(Question):
目前做的題目是opencv的MLP類神經網路
要嘗試非常多種隱藏層組合,所以有5層的巢狀迴圈
跑到最後記憶體16G也不夠使用就crash了
想知道是甚麼東西占了空間,有甚麼方法可以查看哪個東西使用最多空間嗎?
感謝!
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 163.18.57.175
※ 文章網址: https://webptt.com/m.aspx?n=bbs/C_and_CPP/M.1503912589.A.B08.html
1F:噓 Ommm5566: 我想是double 吧 他比float需要比較多空間 08/28 18:52
2F:推 s4300026: 我想是class 08/28 19:13
謝謝回應,我知道我的問題很LOW,
因為這支程式只是拿來驗證用的,主要學的不是C++,
不知道為何一直累積記憶體,請問我還需要提供那些資訊呢?
※ 編輯: hsucheng (1.172.251.249), 08/28/2017 19:28:35
3F:推 Qbsuran: 就memory leak啊 查迴圈內每個函數使用說明 08/28 20:23
4F:推 Ommm5566: 問題在你到底在問什麼 "哪個東西"的東西是什麼 08/29 07:14
5F:→ Ommm5566: 如果只是因為記憶體不夠 那就寫成檔案後釋放不必要的佔 08/29 07:16
6F:→ Ommm5566: 用 08/29 07:16
7F:→ Ommm5566: 如果是墮入無窮迴圈 那是程式邏輯問題 08/29 07:17
8F:→ Ommm5566: 你的資訊有給和沒給一樣 當別人有水晶球 08/29 07:17
9F:噓 Ommm5566: 發文格式都給你了 還不會用 08/29 07:49
10F:推 Bencrie: 找 profiler 測記憶體使用量,結案。 08/29 09:34
11F:→ Bencrie: 我是覺得原 po 要求很清楚啦,就想快速分析哪裡吃太多 08/29 09:36
12F:→ Bencrie: ram 而已。 08/29 09:36
13F:推 Killercat: gprof + valgrind, leak問題大概都靠這個 08/29 20:28
14F:→ Killercat: 不過記憶體用量分析的話可能麻煩點 08/29 20:29
15F:→ Killercat: 看看這對你合不合用 08/29 20:29
16F:推 LiloHuang: 個人建議 Intel Inspector 可先抓試用版來用用看 08/29 22:46
17F:→ tinlans: 那你知道 C++ 是需要手動釋放記憶體的嗎? 08/30 02:06
18F:→ tinlans: 看過一些熟悉其它語言的跑來寫 C++ 只 new 不 delete 08/30 02:06
19F:→ tinlans: 另一個可能就是你的演算法本身就需要那麼多記憶體,也許 08/30 02:08
20F:→ tinlans: 要考慮資料庫或 sqlite 的方案,而不是單靠記憶體。 08/30 02:09
21F:→ Killercat: 所以我給java過來的人都先塞smart pointer給他們再說XD 08/30 07:18
22F:→ Killercat: 這種都懂要delete 只是因為以前工作不用 所以都沒習慣 08/30 07:18
23F:→ Killercat: 不過對於殺掉不該殺的如singleton那種就沒輒了 08/30 07:18