[问题] 如何知道什么东西占用的空间最大?

楼主: hsucheng (Marshall)   2017-08-28 17:29:47
开发平台(Platform): (Ex: Win10, Linux, ...)
Win7 VS2015
编译器(Ex: GCC, clang, VC++...)+目标环境(跟开发平台不同的话需列出)
C++
额外使用到的函数库(Library Used): (Ex: OpenGL, ...)
opencv
问题(Question):
目前做的题目是opencv的MLP类神经网络
要尝试非常多种隐藏层组合,所以有5层的巢状循环
跑到最后内存16G也不够使用就crash了
想知道是什么东西占了空间,有什么方法可以查看哪个东西使用最多空间吗?
感谢!
作者: Ommm5566 (56天團)   2017-08-28 18:52:00
我想是double 吧 他比float需要比较多空间
作者: s4300026 (s4300026)   2017-08-28 19:13:00
我想是class
作者: Qbsuran (Qbsuran)   2017-08-28 20:23:00
就memory leak啊 查循环内每个函数使用说明
作者: Ommm5566 (56天團)   2017-08-29 07:14:00
问题在你到底在问什么 "哪个东西"的东西是什么如果只是因为内存不够 那就写成档案后释放不必要的占用如果是堕入无穷循环 那是程式逻辑问题你的资讯有给和没给一样 当别人有水晶球发文格式都给你了 还不会用
作者: Bencrie   2017-08-29 09:34:00
找 profiler 测内存使用量,结案。我是觉得原 po 要求很清楚啦,就想快速分析哪里吃太多ram 而已。
作者: Killercat (杀人猫™)   2017-08-29 20:28:00
gprof + valgrind, leak问题大概都靠这个不过内存用量分析的话可能麻烦点看看这对你合不合用
作者: LiloHuang (十年一刻)   2017-08-29 22:46:00
个人建议 Intel Inspector 可先抓试用版来用用看
作者: tinlans ( )   2017-08-30 02:06:00
那你知道 C++ 是需要手动释放内存的吗?看过一些熟悉其它语言的跑来写 C++ 只 new 不 delete另一个可能就是你的算法本身就需要那么多内存,也许要考虑数据库或 sqlite 的方案,而不是单靠内存。
作者: Killercat (杀人猫™)   2017-08-30 07:18:00
所以我给java过来的人都先塞smart pointer给他们再说XD这种都懂要delete 只是因为以前工作不用 所以都没习惯不过对于杀掉不该杀的如singleton那种就没辄了

Links booklink

Contact Us: admin [ a t ] ucptt.com