国产成人精品久久免费动漫-国产成人精品天堂-国产成人精品区在线观看-国产成人精品日本-a级毛片无码免费真人-a级毛片毛片免费观看久潮喷

您的位置:首頁技術文章
文章詳情頁

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

瀏覽:2日期:2022-07-26 10:09:03

前言

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

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

解決方案

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

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

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

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

def get_current_memory_gb() -> int:# 獲取當前進程內(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)存,那么我設置個 20GB 就相當安全,用 Python 進行統(tǒng)計語料,數(shù)據(jù)多到進程占用 20GB 內(nèi)存了,就把當前的數(shù)據(jù)寫入硬盤,同步統(tǒng)計數(shù)據(jù),然后清空程序里的字典緩存釋放內(nèi)存。

python之psutil

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

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

pip install psutil

總結

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

標簽: Python 編程
相關文章:
主站蜘蛛池模板: 久久99国产精品久久99果冻传媒 | 一级片aaa| 成年人免费在线视频 | 成人免费公开视频 | 欧美在线视频免费观看 | 91久久香蕉国产线看 | 日韩美香港a一级毛片 | 成人午夜影视 | 亚洲欧美中文日韩二区一区 | 精品国产高清a毛片无毒不卡 | 日本成人中文字幕 | 国产深夜福利 | 欧美专区一区二区三区 | 欧美毛片在线观看 | 在线视频日本 | 一本一道久久 | 国产一区在线播放 | 国产欧美精品一区二区 | 日本黄网站高清色大全 | 久草网视频在线观看 | 91免费版网站 | 中文字幕亚洲精品第一区 | 国产成人精品一区二区三区 | 91成人国产网站在线观看 | 国产亚洲欧美日韩国产片 | 久久久不卡国产精品一区二区 | 欧美午夜性春猛交 | 亚洲精品色 | 欧美成人精品大片免费流量 | 美女张开腿让男人捅的视频 | 亚洲美女在线视频 | 香港三级日本三级人妇网站 | 日韩免费高清一级毛片 | 亚洲成人手机在线观看 | 久久久小视频 | 在线播放国产视频 | 久久成人精品免费播放 | 亚洲网站免费看 | 香蕉成人国产精品免费看网站 | 亚洲精品一区亚洲精品 | 国模肉肉人体大尺度啪啪 |