成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

如何調(diào)試內(nèi)存泄漏?方法論來了

存儲 存儲軟件
既然是調(diào)試,那就得用上工具,調(diào)試內(nèi)存泄漏的工具有很多,最經(jīng)典的就是valgrind和Asan,valgrind非常好用,但是在移動端不太好用,特別是Android,移植起來非常困難,而且還要sudo權(quán)限。

[[433453]]

作為程序員,特別是C/C++程序員,內(nèi)存泄漏問題是必須要邁過的一座大山,那,

  • 寫代碼時如何避免內(nèi)存泄漏?
  • 出現(xiàn)內(nèi)存泄漏后,如何調(diào)試?

直奔主題!

01內(nèi)存如何避免內(nèi)存泄漏?

誰也不能永遠(yuǎn)保證自己的代碼沒有內(nèi)存泄漏,這里我只能給出幾點建議:

  • 充分利用RAII:考慮使用智能指針,關(guān)于智能指針是否應(yīng)用使用,相信有人聽身邊的大佬說過不建議使用使用智能指針,可能是個帶刺的玫瑰?不過在我短暫的C++開發(fā)生涯里,我還沒有被智能指針坑過,而且用起來還特別方便,因為它真的能夠降低出現(xiàn)內(nèi)存泄漏的概率。至于那些大佬們的不同聲音,我更傾向于Bjarne Stroustrup和Scott Meyers這些大佬們的意見,他們都建議使用智能指針,那我等小輩跟隨就完事了。
  • 誰申請誰釋放:如果沒有使用智能指針,或者有些情況下沒辦法使用智能指針,那我們最好遵循一個原則,即誰申請誰釋放原則。A這里申請的內(nèi)存盡量在A這里釋放,不要A申請內(nèi)存,然后跑到B里釋放,這種代碼不直觀,一不利于排查問題,二很容易稍微一點疏忽就導(dǎo)致內(nèi)存泄漏。
  • 確保配對使用:new/delete,new[]/delete[]一定要配對使用,不配對使用大概率會出問題。這里推薦看下new[]和delete[]一定要配對使用嗎?
  • 小空間優(yōu)先使用棧內(nèi)存:一般內(nèi)存泄漏都是指堆內(nèi)存泄漏,我們不申請堆內(nèi)存,它自然就不會泄漏。

附加:這里還有個有效避免內(nèi)存泄漏的方案,就是手?jǐn)]一個內(nèi)存泄漏檢測器,在Debug模式下可以考慮開啟它,程序運行一遍后,如果有內(nèi)存泄漏,會精確指出是在哪里出現(xiàn)的泄漏。關(guān)于內(nèi)存泄漏檢測器可以移步到這里:我擼了個內(nèi)存泄漏檢測工具,只用了兩招,其實原理就是重載operator new和operator delete。

02如何調(diào)試內(nèi)存泄漏?

既然是調(diào)試,那就得用上工具,調(diào)試內(nèi)存泄漏的工具有很多,最經(jīng)典的就是valgrind和Asan,valgrind非常好用,但是在移動端不太好用,特別是Android,移植起來非常困難,而且還要sudo權(quán)限。而Asan就好多了,在哪里都能用,關(guān)于Asan我之前寫文章介紹過,可以看這里:Linux如何調(diào)試內(nèi)存泄漏。

然而如果是在移動端,我還發(fā)現(xiàn)了一個好用的開源庫:https://github.com/tencent/matrix

這是一個騰訊出品的性能剖析工具,適用于Android和iOS,內(nèi)存泄漏檢測只是功能之一,更多功能大家可以自己去看看,確實不錯。

 

打完收工。

 

責(zé)任編輯:武曉燕 來源: 程序喵大人
相關(guān)推薦

2013-12-25 09:50:27

華為馬悅企業(yè)業(yè)務(wù)

2022-06-27 08:47:29

BEM修飾符元素

2011-01-14 17:00:11

Linux內(nèi)存泄露

2020-10-12 07:57:42

技術(shù)架構(gòu)制圖

2023-02-22 08:15:13

壓測模擬計算

2009-03-16 13:43:14

2022-08-22 11:45:59

架構(gòu)技術(shù)

2025-04-01 02:22:00

2023-11-20 07:10:48

用戶分析聚類算法

2020-04-16 08:45:03

架構(gòu)應(yīng)用邏輯方法論

2015-03-27 09:31:01

2015-08-12 17:06:28

2024-08-28 11:03:52

2016-03-25 15:37:18

數(shù)據(jù)治理數(shù)據(jù)分析BI

2013-11-11 18:19:44

信息時代知識工程

2014-03-14 10:07:09

極限編程敏捷開發(fā)

2017-10-09 15:04:55

程序猿新人

2020-08-17 08:39:36

API監(jiān)控

2016-11-17 10:46:10

2018-02-01 13:22:50

數(shù)據(jù)庫MySQL同步延遲
點贊
收藏

51CTO技術(shù)棧公眾號

主站蜘蛛池模板: 蜜桃臀av一区二区三区 | 日韩av网址在线观看 | 日本特黄特色aaa大片免费 | 玖玖国产 | 99re6在线视频精品免费 | 久久婷婷国产麻豆91 | 日日干天天操 | 国产伦精品一区二区三区视频金莲 | 99精品福利视频 | 成人av一区二区亚洲精 | 91一区二区在线观看 | 欧美一区二区三区大片 | 一区二区三区免费观看 | 成人激情免费视频 | 亚洲欧美在线免费观看 | 国产福利在线 | 国产一级在线观看 | 亚洲电影在线播放 | 国产三级 | 亚洲欧美日韩国产 | 精品久久久久久久 | 亚洲欧美日韩精品久久亚洲区 | 国产精品成人一区二区三区 | 99精品视频在线 | 日本不卡在线观看 | 久久久久久高清 | 日韩高清国产一区在线 | 久草视频在线播放 | 国产一在线观看 | 亚洲精品久久久一区二区三区 | 午夜视频免费网站 | 一区二区三区在线 | 欧 | 日韩欧美精品 | 福利视频三区 | 亚洲视频在线观看 | 华丽的挑战在线观看 | 亚洲天堂成人在线视频 | 亚洲国产精品久久久久秋霞不卡 | 欧美在线| 永久av | 99reav|