欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

C++獲取內(nèi)存使用情況小結(jié)

 更新時(shí)間:2024年01月11日 09:53:21   作者:Joemt  
在程序編程過程中,為了防止出現(xiàn)內(nèi)存泄漏情況出現(xiàn),需要持續(xù)關(guān)注內(nèi)存程序內(nèi)存占用情況,本文主要介紹了C++獲取內(nèi)存使用情況小結(jié),具有一定的參考價(jià)值,感興趣的可以了解一下

在程序編程過程中,為了防止出現(xiàn)內(nèi)存泄漏情況出現(xiàn),需要持續(xù)關(guān)注內(nèi)存程序內(nèi)存占用情況。如下方式實(shí)現(xiàn)獲取當(dāng)前進(jìn)程內(nèi)存使用情況:

linux:

void my_top(string path, bool flag)
{
    if(flag)
    {
        FILE* read_top = fopen("/proc/self/status", "r");
        char line_rss[128];
        unsigned long long Pid, VmSize, VmRSS;

        while (fgets(line_rss, 128, read_top) != NULL)
        {
            if (strncmp(line_rss, "Pid:", 4) == 0)
            {
                string str(line_rss + 4);
                Pid = strtoull(str.c_str(), NULL, 19);
            }

            if (strncmp(line_rss, "VmSize:", 7) == 0)
            {
                string str(line_rss + 7);
                VmSize = strtoull(str.c_str(), NULL, 19);
            }

            if (strncmp(line_rss, "VmRSS:", 6) == 0)
            {
                string str(line_rss + 6);
                VmRSS = strtoull(str.c_str(), NULL, 19);
            }

            if(Pid < 0 || VmSize < 0 || VmRSS < 0)
            {
                fclose(read_top);
                break;
            }
        }
        fclose(read_top);

        ofstream writer_top(path, ios::app);
        writer_top << Pid << " " << VmSize << " " << VmRSS << endl;
        writer_top.close();
    }
    else
    {
        ofstream writer_top(path, ios::app);
        writer_top << "0" << " " << "0" << " " << "0" << endl;
        writer_top.close();
    }
}

其他資源:

VmPeak:     表示進(jìn)程所占用最大虛擬內(nèi)存大小
VmSize:     表示進(jìn)程當(dāng)前虛擬內(nèi)存大小
VmLck:      表示被鎖定的內(nèi)存大小
VmHWM:        表示進(jìn)程所占用物理內(nèi)存的峰值
VmRSS:         表示進(jìn)程當(dāng)前占用物理內(nèi)存的大小(與procrank中的RSS)
VmData:     表示進(jìn)程數(shù)據(jù)段的大小
VmStk:      表示進(jìn)程堆棧段的大小
VmExe:      表示進(jìn)程代碼的大小
VmLib:      表示進(jìn)程所使用共享庫的大小
VmPTE:      表示進(jìn)程頁表項(xiàng)的大小

windows:

#include <windows.h>
#include <psapi.h>
#include <stdio.h>

int main()
{
    PROCESS_MEMORY_COUNTERS pmc;
    if (GetProcessMemoryInfo(GetCurrentProcess(), &pmc, sizeof(pmc)))
    {
        printf("當(dāng)前進(jìn)程占用內(nèi)存大小為:%d KB\n", pmc.WorkingSetSize / 1024);
    }
    return 0;
}

到此這篇關(guān)于C++獲取內(nèi)存使用情況小結(jié)的文章就介紹到這了,更多相關(guān)C++獲取內(nèi)存內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家! 

相關(guān)文章

  • 高效實(shí)現(xiàn)整型數(shù)字轉(zhuǎn)字符串int2str的方法

    高效實(shí)現(xiàn)整型數(shù)字轉(zhuǎn)字符串int2str的方法

    下面小編就為大家?guī)硪黄咝?shí)現(xiàn)整型數(shù)字轉(zhuǎn)字符串int2str的方法。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2017-03-03
  • C++實(shí)現(xiàn)圖的鄰接矩陣存儲(chǔ)和廣度、深度優(yōu)先遍歷實(shí)例分析

    C++實(shí)現(xiàn)圖的鄰接矩陣存儲(chǔ)和廣度、深度優(yōu)先遍歷實(shí)例分析

    這篇文章主要介紹了C++實(shí)現(xiàn)圖的鄰接矩陣存儲(chǔ)和廣度、深度優(yōu)先遍歷,實(shí)例分析了C++實(shí)現(xiàn)圖的遍歷技巧,非常具有實(shí)用價(jià)值,需要的朋友可以參考下
    2015-04-04
  • 關(guān)于C語言中弱符號(hào)與弱引用的實(shí)際應(yīng)用問題

    關(guān)于C語言中弱符號(hào)與弱引用的實(shí)際應(yīng)用問題

    在編碼過程中,我們經(jīng)常遇到符號(hào)重定義的錯(cuò)誤問題,本文通過實(shí)例代碼展示給大家介紹了C語言弱符號(hào)與弱引用的實(shí)際應(yīng)用問題,一起看看吧
    2021-09-09
  • 淺談C++20新增內(nèi)容

    淺談C++20新增內(nèi)容

    C++20 是 C++ 語言的一次重大更新,它引入了許多新特性,本文主要介紹了淺談C++20新增內(nèi)容,具有一定的參考價(jià)值,感興趣的可以了解一下
    2025-04-04
  • C++ 約瑟夫環(huán)的實(shí)例代碼

    C++ 約瑟夫環(huán)的實(shí)例代碼

    這篇文章主要介紹了C++ 約瑟夫環(huán)的實(shí)例代碼的相關(guān)資料,希望通過本文能幫助到大家,實(shí)現(xiàn)這樣的功能,需要的朋友可以參考下
    2017-10-10
  • C語言數(shù)組全面總結(jié)梳理

    C語言數(shù)組全面總結(jié)梳理

    在C語言和C++等語言中,數(shù)組元素全為指針變量的數(shù)組稱為指針數(shù)組,指針數(shù)組中的元素都必須具有相同的存儲(chǔ)類型、指向相同數(shù)據(jù)類型的指針變量。指針數(shù)組比較適合用來指向若干個(gè)字符串,使字符串處理更加方便、靈活
    2022-02-02
  • 教你5分鐘輕松搞定內(nèi)存字節(jié)對(duì)齊

    教你5分鐘輕松搞定內(nèi)存字節(jié)對(duì)齊

    隨便google一下,人家就可以跟你解釋的,一大堆的道理,我們沒怎么多時(shí)間,討論為何要對(duì)齊.直入主題,怎么判斷內(nèi)存對(duì)齊規(guī)則,sizeof的結(jié)果怎么來的,請(qǐng)牢記以下3條原則
    2013-09-09
  • C++ LeetCode1780判斷數(shù)字是否可以表示成三的冪的和

    C++ LeetCode1780判斷數(shù)字是否可以表示成三的冪的和

    這篇文章主要為大家介紹了C++ LeetCode1780判斷數(shù)字是否可以表示成三的冪的和題解示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-12-12
  • STL容器之list源碼詳細(xì)解讀

    STL容器之list源碼詳細(xì)解讀

    這篇文章主要介紹了STL容器之list源碼詳細(xì)解讀,相對(duì)于vector的連續(xù)線性空間,list就顯得更加復(fù)雜,它每插入或者刪除一個(gè)元素,就配置或釋放一個(gè)元素空間,需要的朋友可以參考下
    2024-01-01
  • 關(guān)于STL中l(wèi)ist容器的一些總結(jié)

    關(guān)于STL中l(wèi)ist容器的一些總結(jié)

    list就是數(shù)據(jù)結(jié)構(gòu)中的雙向鏈表(根據(jù)sgi stl源代碼),因此它的內(nèi)存空間是不連續(xù)的,通過指針來進(jìn)行數(shù)據(jù)的訪問,這個(gè)特點(diǎn)使得它的隨即存取變的非常沒有效率,因此它沒有提供[]操作符的重載
    2013-09-09

最新評(píng)論