亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

利用Python如何實時檢測自身內(nèi)存占用

 更新時間:2020年05月09日 09:00:42   作者:落格博客  
這篇文章主要介紹了利用Python如何實時檢測自身內(nèi)存占用的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家學(xué)習(xí)或者使用Python具有一定的參考學(xué)習(xí)價值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧

前言

最近在做文本統(tǒng)計,用 Python 實現(xiàn),遇到了一個比較有意思的難題——如何保存統(tǒng)計結(jié)果。

直接寫入內(nèi)存實在是放不下,十幾個小時后內(nèi)存耗盡,程序被迫關(guān)閉。如果直接寫入數(shù)據(jù)庫吧,每次寫入又太慢了,本來就十幾個小時了,這樣下去就要往星期上數(shù)了,也不是個辦法。

解決方案

最后,我想到了一個兩者兼顧的方案——用內(nèi)存做緩沖,達(dá)到一定量之后一次性將當(dāng)前所有數(shù)據(jù)合并到硬盤里。

但這樣就有一個閾值,如何確定同步硬盤的時機(jī),通??梢园凑瘴募6冗M(jìn)行處理,比如處理一個語料文件同步一次……但我的語料有大有小,大的有10GB,根本等不到那一刻內(nèi)存就爆炸了,后來我想用統(tǒng)計數(shù)據(jù)量進(jìn)行判斷……可這又有點難以估計,小了吧頻繁寫入,緩存的意義就不大了,大了吧還沒等到條目數(shù)量達(dá)到,內(nèi)存就已經(jīng)爆滿。另外考慮到將來程序會運行在不同配置的設(shè)備上,讓其他開發(fā)者根據(jù)自身情況計算這個閾值也有點太不友好,于是我想到了一個辦法——不如讓 Python 自己檢測自己的內(nèi)存占用,如果快滿了(或者達(dá)到閾值),就同步寫入硬盤一次。

對于其他開發(fā)者來說,自身設(shè)備的內(nèi)存多大是很容易查看的,根據(jù)系統(tǒng)運行狀況設(shè)置一個合理的閾值,相當(dāng)方便。

要用 Python 監(jiān)控自身內(nèi)存占用,要使用 psutil 這個庫來和系統(tǒng)進(jìn)行交互,基本邏輯就是先拿到自己的 pid ,然后根據(jù)這個 pid 去跟系統(tǒng)獲取進(jìn)程信息。

def get_current_memory_gb() -> int:
# 獲取當(dāng)前進(jìn)程內(nèi)存占用。
pid = os.getpid()
p = psutil.Process(pid)
info = p.memory_full_info()
return info.uss / 1024. / 1024. / 1024.

比如我系統(tǒng)是 32GB 內(nèi)存,那么我設(shè)置個 20GB 就相當(dāng)安全,用 Python 進(jìn)行統(tǒng)計語料,數(shù)據(jù)多到進(jìn)程占用 20GB 內(nèi)存了,就把當(dāng)前的數(shù)據(jù)寫入硬盤,同步統(tǒng)計數(shù)據(jù),然后清空程序里的字典緩存釋放內(nèi)存。

python之psutil

psutil是個跨平臺庫,能夠輕松實現(xiàn)獲取系統(tǒng)運行的進(jìn)程和系統(tǒng)利用率,包括CPU、內(nèi)存、磁盤、網(wǎng)絡(luò)等信息。

Linux系統(tǒng)下的安裝

pip install psutil

總結(jié)

到此這篇關(guān)于利用Python如何實時檢測自身內(nèi)存占用的文章就介紹到這了,更多相關(guān)Python實時檢測自身內(nèi)存占用內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • PyTorch使用自動微分模塊的方法和理解

    PyTorch使用自動微分模塊的方法和理解

    自動微分模塊Autograd為張量增加了自動求導(dǎo)功能,是神經(jīng)網(wǎng)絡(luò)訓(xùn)練不可或缺的組成部分,通過backward方法和grad屬性,實現(xiàn)梯度的計算和訪問,本小節(jié)主要講解了 PyTorch 中非常重要的自動微分模塊的使用和理解,感興趣的朋友一起看看吧
    2024-09-09
  • Python?encode()方法和decode()方法詳解

    Python?encode()方法和decode()方法詳解

    encode() 方法為字符串類型(str)提供的方法,用于將 str 類型轉(zhuǎn)換成 bytes 類型,這個過程也稱為“編碼”,這篇文章主要介紹了Python?encode()方法和decode()方法,需要的朋友可以參考下
    2022-12-12
  • python從內(nèi)存地址上加載python對象過程詳解

    python從內(nèi)存地址上加載python對象過程詳解

    這篇文章主要介紹了python從內(nèi)存地址上加載pythn對象過程詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-01-01
  • pandas.loc 選取指定列進(jìn)行操作的實例

    pandas.loc 選取指定列進(jìn)行操作的實例

    今天小編就為大家分享一篇pandas.loc 選取指定列進(jìn)行操作的實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-05-05
  • Python列表list排列組合操作示例

    Python列表list排列組合操作示例

    這篇文章主要介紹了Python列表list排列組合操作,涉及Python排列組合數(shù)值運算相關(guān)操作技巧,需要的朋友可以參考下
    2018-12-12
  • Python生成隨機(jī)驗證碼的兩種方法

    Python生成隨機(jī)驗證碼的兩種方法

    使用python生成隨機(jī)驗證碼的方法有很多種,今天小編給大家分享兩種方法,大家可以靈活運用這兩種方法,設(shè)計出適合自己的驗證碼方法
    2015-12-12
  • Python中利用sorted()函數(shù)排序的簡單教程

    Python中利用sorted()函數(shù)排序的簡單教程

    這篇文章主要介紹了Python中利用sorted()函數(shù)排序的簡單教程,sorted()函數(shù)有返回值,在Python的排序?qū)崿F(xiàn)中發(fā)揮著相當(dāng)重要的作用,需要的朋友可以參考下
    2015-04-04
  • Python爬蟲之獲取心知天氣API實時天氣數(shù)據(jù)并彈窗提醒

    Python爬蟲之獲取心知天氣API實時天氣數(shù)據(jù)并彈窗提醒

    今天我們來學(xué)習(xí)如何獲取心知天氣API實時天氣數(shù)據(jù),制作彈窗提醒,并設(shè)置成自啟動項目.文中有非常詳細(xì)的代碼示例及介紹,對正在學(xué)習(xí)python的小伙伴們有非常好的幫助,需要的朋友可以參考下
    2021-05-05
  • 跟老齊學(xué)Python之有容乃大的list(1)

    跟老齊學(xué)Python之有容乃大的list(1)

    這一講中的list類型,也是python的一種數(shù)據(jù)類型。翻譯為:列表。LIST在python中具有非常強(qiáng)大的功能。
    2014-09-09
  • Python通過psd-tools解析PSD文件的實現(xiàn)

    Python通過psd-tools解析PSD文件的實現(xiàn)

    本文主要介紹了Python通過psd-tools解析PSD文件的實現(xiàn),主要包括如何獲取PSD文件的基本信息、遍歷圖層、提取圖層詳細(xì)信息、保存和創(chuàng)建PSD文件,感興趣的可以了解一下
    2023-12-12

最新評論