色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
电子发烧友
开通电子发烧友VIP会员 尊享10大特权
海量资料免费下载
精品直播免费看
优质内容免费畅学
课程9折专享价
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

Linux操作系統(tǒng)知識(shí)講解:避免內(nèi)存使用七大坑

如意 ? 來(lái)源:Linux學(xué)習(xí) ? 作者:佚名 ? 2020-08-28 11:12 ? 次閱讀

內(nèi)存使用那些坑

1、C 內(nèi)存泄露

在類的構(gòu)造函數(shù)和析構(gòu)函數(shù)中沒(méi)有匹配地調(diào)用 new 和 delete 函數(shù)

Linux操作系統(tǒng)知識(shí)講解:避免內(nèi)存使用七大坑

沒(méi)有正確地清除嵌套的對(duì)象指針

沒(méi)有將基類的析構(gòu)函數(shù)定義為虛函數(shù)

當(dāng)基類的指針指向子類對(duì)象時(shí),如果基類的析構(gòu)函數(shù)不是 virtual,那么子類的析構(gòu)函數(shù)將不會(huì)被調(diào)用,子類的資源沒(méi)有得到正確釋放,因此造成內(nèi)存泄露

缺少拷貝構(gòu)造函數(shù),按值傳遞會(huì)調(diào)用(拷貝)構(gòu)造函數(shù),引用傳遞不會(huì)調(diào)用

指向?qū)ο蟮闹羔様?shù)組不等同于對(duì)象數(shù)組,數(shù)組中存放的是指向?qū)ο蟮闹羔槪粌H要釋放每個(gè)對(duì)象的空間,還要釋放每個(gè)指針的空間

缺少重載賦值運(yùn)算符,也是逐個(gè)成員拷貝的方式復(fù)制對(duì)象,如果這個(gè)類的大小是可變的,那么結(jié)果就是造成內(nèi)存泄露

2、C 野指針

指針變量沒(méi)有初始化

指針被 free 或 delete 后,沒(méi)有設(shè)置為 NULL

指針操作超越了變量的作用范圍,比如返回指向棧內(nèi)存的指針就是野指針

訪問(wèn)空指針(需要做空判斷)

sizeof 無(wú)法獲取數(shù)組的大小

試圖修改常量,如:char p=“1234”;p=‘1’;

3、C 資源訪問(wèn)沖突

多線程共享變量沒(méi)有用 valotile 修飾

多線程訪問(wèn)全局變量未加鎖

全局變量?jī)H對(duì)單進(jìn)程有效

多進(jìn)程寫(xiě)共享內(nèi)存數(shù)據(jù),未做同步處理

mmap 內(nèi)存映射,多進(jìn)程不安全

4、STL 迭代器失效

被刪除的迭代器失效

添加元素(insert/push_back 等)、刪除元素導(dǎo)致順序容器迭代器失效

錯(cuò)誤示例:刪除當(dāng)前迭代器,迭代器會(huì)失效

Linux操作系統(tǒng)知識(shí)講解:避免內(nèi)存使用七大坑

正確示例:迭代器 erase 時(shí),需保存下一個(gè)迭代器

Linux操作系統(tǒng)知識(shí)講解:避免內(nèi)存使用七大坑

5、C++ 11 智能指針

auto_ptr 替換為 unique_ptr

Linux操作系統(tǒng)知識(shí)講解:避免內(nèi)存使用七大坑

使用 make_shared 初始化一個(gè) shared_ptr

Linux操作系統(tǒng)知識(shí)講解:避免內(nèi)存使用七大坑

weak_ptr 智能指針助手(1)原理分析:

Linux操作系統(tǒng)知識(shí)講解:避免內(nèi)存使用七大坑

(2)數(shù)據(jù)結(jié)構(gòu):

Linux操作系統(tǒng)知識(shí)講解:避免內(nèi)存使用七大坑

(3)使用方法:a. lock() 獲取所管理的對(duì)象的強(qiáng)引用指針 b. expired() 檢測(cè)所管理的對(duì)象是否已經(jīng)釋放 c. get() 訪問(wèn)智能指針對(duì)象

6、C++ 11 更小更快更安全

std::atomic 原子數(shù)據(jù)類型 多線程安全

std::array 定長(zhǎng)數(shù)組開(kāi)銷比 array 小和 std::vector 不同的是 array 的長(zhǎng)度是固定的,不能動(dòng)態(tài)拓展

std::vector vector 瘦身 shrink_to_fit():將 capacity 減少為于 size() 相同的大小

td::forward_list

forward_list 是單鏈表(std::list 是雙鏈表),只需要順序遍歷的場(chǎng)合,forward_list 能更加節(jié)省內(nèi)存,插入和刪除的性能高于 list

std::unordered_map、std::unordered_set用 hash 實(shí)現(xiàn)的無(wú)序的容器,插入、刪除和查找的時(shí)間復(fù)雜度都是 O(1),在不關(guān)注容器內(nèi)元素順序的場(chǎng)合,使用 unordered 的容器能獲得更高的性能六、 如何查看內(nèi)存

系統(tǒng)中內(nèi)存使用情況:/proc/meminfo

進(jìn)程的內(nèi)存使用情況:/proc/28040/status

查詢內(nèi)存總使用率:free

查詢進(jìn)程 cpu 和內(nèi)存使用占比:top

虛擬內(nèi)存統(tǒng)計(jì):vmstat

進(jìn)程消耗內(nèi)存占比和排序:ps aux –sort -rss

釋放系統(tǒng)內(nèi)存緩存:/proc/sys/vm/drop_caches
責(zé)編AJX

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • Linux
    +關(guān)注

    關(guān)注

    87

    文章

    11446

    瀏覽量

    212625
  • 內(nèi)存
    +關(guān)注

    關(guān)注

    8

    文章

    3105

    瀏覽量

    74949
  • C++
    C++
    +關(guān)注

    關(guān)注

    22

    文章

    2116

    瀏覽量

    74711
收藏 0人收藏

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    死創(chuàng)業(yè)者的硬件產(chǎn)品——“十大坑

    死創(chuàng)業(yè)者的硬件產(chǎn)品——“十大坑”第一:錯(cuò)把產(chǎn)品原型當(dāng)批量生產(chǎn)第二:以為可以修補(bǔ)bug;第三:什么都自己做;第四
    發(fā)表于 11-14 15:59

    Linux操作系統(tǒng)

    linux的教學(xué)內(nèi)容1 、Linux概述 2 、Linux操作系統(tǒng)安裝3、 Linux的內(nèi)核 4 、Li
    發(fā)表于 04-10 16:54 ?0次下載
    <b class='flag-5'>Linux</b><b class='flag-5'>操作系統(tǒng)</b>

    Linux操作系統(tǒng)原理及應(yīng)用

    Linux操作系統(tǒng)原理及應(yīng)用 1.1  操作系統(tǒng)的地位 1.2  操作系統(tǒng)的功能 1.3  操作系統(tǒng)的發(fā)
    發(fā)表于 04-28 14:53 ?0次下載

    什么是Linux操作系統(tǒng)

    什么是Linux操作系統(tǒng)  簡(jiǎn)單地說(shuō),Linux是一套
    發(fā)表于 12-26 12:04 ?1430次閱讀

    Linux操作系統(tǒng)簡(jiǎn)介

    領(lǐng)域縱橫馳騁吧! RT-Linux 這是由美國(guó)墨西哥理工學(xué)院開(kāi)發(fā)的嵌入式Linux操作系統(tǒng)。到目前為止,RT-Linux已經(jīng)成功地應(yīng)用于航天飛機(jī)的空間數(shù)據(jù)采集、科學(xué)儀器測(cè)控和電影特技圖
    發(fā)表于 11-06 14:49 ?0次下載

    Linux操作系統(tǒng)基本使用知識(shí),Linux操作系統(tǒng)操作流程圖文詳解

    Linux系統(tǒng)一般有4個(gè)主要部分:內(nèi)核、shell、文件系統(tǒng)和應(yīng)用程序。內(nèi)核、shell和文件系統(tǒng)一起形成了基本的操作系統(tǒng)結(jié)構(gòu),它們使得用戶
    發(fā)表于 11-24 16:19 ?1.9w次閱讀
    <b class='flag-5'>Linux</b><b class='flag-5'>操作系統(tǒng)</b>基本使用<b class='flag-5'>知識(shí)</b>,<b class='flag-5'>Linux</b><b class='flag-5'>操作系統(tǒng)</b><b class='flag-5'>操作</b>流程圖文詳解

    Linux操作系統(tǒng)基礎(chǔ)教程的詳細(xì)資料講解

    并不能使同學(xué)們通過(guò)這次系列講座成為一個(gè)UNIX 類操作系統(tǒng)的高手,這次系列講座的目的就是在同學(xué)們中間普及Linux 基礎(chǔ)知識(shí), 為今后我們更加接近的了解Linux 做一個(gè)好的開(kāi)端。
    發(fā)表于 06-11 15:32 ?4次下載

    趣談Linux操作系統(tǒng)

    趣談Linux操作系統(tǒng)
    的頭像 發(fā)表于 01-13 16:00 ?6703次閱讀

    linux操作系統(tǒng)好學(xué)嗎_要學(xué)什么

    linux操作系統(tǒng)的基礎(chǔ)知識(shí)是比較好學(xué)的,但是需要我們通過(guò)大量地練習(xí)來(lái)牢記這些基礎(chǔ)知識(shí)。
    發(fā)表于 05-23 09:33 ?3158次閱讀

    Linux操作系統(tǒng)知識(shí)講解:走進(jìn)內(nèi)存

    Linux操作系統(tǒng)知識(shí)講解:走進(jìn)內(nèi)存
    的頭像 發(fā)表于 08-28 10:30 ?2528次閱讀
    <b class='flag-5'>Linux</b><b class='flag-5'>操作系統(tǒng)</b><b class='flag-5'>知識(shí)</b><b class='flag-5'>講解</b>:走進(jìn)<b class='flag-5'>內(nèi)存</b>

    Linux操作系統(tǒng)知識(shí)講解:走進(jìn)linux 內(nèi)存地址空間

    Linux操作系統(tǒng)知識(shí)講解:走進(jìn)linux 內(nèi)存地址空間
    的頭像 發(fā)表于 08-28 10:45 ?5298次閱讀
    <b class='flag-5'>Linux</b><b class='flag-5'>操作系統(tǒng)</b><b class='flag-5'>知識(shí)</b><b class='flag-5'>講解</b>:走進(jìn)<b class='flag-5'>linux</b> <b class='flag-5'>內(nèi)存</b>地址空間

    Linux操作系統(tǒng)知識(shí)講解:走進(jìn)Linux 內(nèi)存分配算法

    Linux操作系統(tǒng)知識(shí)講解:走進(jìn)Linux 內(nèi)存分配算法
    的頭像 發(fā)表于 08-28 10:57 ?5657次閱讀
    <b class='flag-5'>Linux</b><b class='flag-5'>操作系統(tǒng)</b><b class='flag-5'>知識(shí)</b><b class='flag-5'>講解</b>:走進(jìn)<b class='flag-5'>Linux</b> <b class='flag-5'>內(nèi)存</b>分配算法

    Linux操作系統(tǒng)知識(shí)講解:走進(jìn)Linux 內(nèi)存使用場(chǎng)景

    Linux操作系統(tǒng)知識(shí)講解:走進(jìn)Linux 內(nèi)存使用場(chǎng)景
    的頭像 發(fā)表于 08-28 11:04 ?3136次閱讀
    <b class='flag-5'>Linux</b><b class='flag-5'>操作系統(tǒng)</b><b class='flag-5'>知識(shí)</b><b class='flag-5'>講解</b>:走進(jìn)<b class='flag-5'>Linux</b> <b class='flag-5'>內(nèi)存</b>使用場(chǎng)景

    linux操作系統(tǒng)基礎(chǔ)知識(shí)

    本文主要闡述了linux操作系統(tǒng)基礎(chǔ)知識(shí)。
    發(fā)表于 06-04 15:07 ?5994次閱讀

    物聯(lián)網(wǎng)WIFI模塊AT指令版本七大坑

    物聯(lián)網(wǎng)WIFI模塊AT指令版本七大坑,看年你踩中幾個(gè)!
    的頭像 發(fā)表于 08-28 16:29 ?1403次閱讀
    主站蜘蛛池模板: 2012中文字幕在线动漫电影 | 亚洲无吗精品AV九九久久 | 久久高清内射无套 | 亚洲中文字幕乱码熟女在线 | 欧美xxxxx九色视频免费观看 | 草莓国产视频免费观看 | 天美传媒 免费观看 | 色吧.com| avtt天堂网Av无码 | yellow在线观看免费观看大全 | 无码AV动漫精品一区二区免费 | 宝贝你骚死哥了好爽 | 美女的隐私蜜桃传媒免费看 | 色拍拍噜噜噜啦啦新网站 | 国产亚洲免费观看 | 美女被C污黄网站免费观看 美女白虎穴 | 久久精品免费看网站 | 中文字幕 亚洲 有码 在线 | 男人把女人桶到高潮嗷嗷叫 | 成人毛片免费观看视频大全 | 欧美日韩精品久久久免费观看 | 中文字幕在线观看亚洲日韩 | 亚洲最大日夜无码中文字幕 | WWW夜片内射视频在观看视频 | 久久精品国产首叶 | www.av一区| 巨污全肉np一女多男 | 夫外出被公侵犯日本电影 | 亚洲欧美日韩国产精品26u | 久久久久久久99精品免费观看 | 国产骚妇BB网| 色戒2小时38分在线观看 | 亚洲欧美成人综合 | 国产精品一区二区在线播放 | 亚洲精品午夜VA久久成人 | 校园高h肉耽文 | 4480YY无码午夜私人影院 | 亚州免费一级毛片 | 儿子好妈妈的HD3中字抢劫 | 精品网站一区二区三区网站 | 国产二级一片内射视频播放 |

    電子發(fā)燒友

    中國(guó)電子工程師最喜歡的網(wǎng)站

    • 2931785位工程師會(huì)員交流學(xué)習(xí)
    • 獲取您個(gè)性化的科技前沿技術(shù)信息
    • 參加活動(dòng)獲取豐厚的禮品