最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

基于Python制作一個解壓的內(nèi)存加速球

 更新時間:2023年10月07日 15:00:11   作者:銀空飛羽  
安全管家助手什么的上總會帶一個內(nèi)存加速球,有關(guān)掉進程以及內(nèi)存清理的功能,本文就來利用Python制作一個解壓的內(nèi)存加速球,有需要的小伙伴可以參考下

寫在前面

安全管家助手什么的上總會帶一個內(nèi)存加速球,有關(guān)掉進程以及內(nèi)存清理的功能。雖然本質(zhì)上,內(nèi)存清理只是個幌子實際沒啥作用,但是當(dāng)你深度清理之后,肉眼可見的內(nèi)存下降確實很解壓。不過每次都得打開安全軟件才能享受解壓的快感實在是有些買櫝還珠了,所以就想嘗試一下自己寫個玩玩。

內(nèi)存清理

這里我使用python來編寫。

搜索了一下,我確定了兩個方案,一個是通過windows自帶的內(nèi)存回收機制清理,另一個是通過windows提供的一個APIEmptyWorkingSet清理,下面我們就來對比一下。

windows自帶的內(nèi)存回收機制

通過申請大量的內(nèi)存來觸發(fā)windows的內(nèi)存回收機制,從而清理內(nèi)存。

import psutil
import ctypes
mem = psutil.virtual_memory()
size = mem.total // 2
buffer = ctypes.create_string_buffer(size)
del buffer

這里通過psutil獲取到內(nèi)存總數(shù),并且通過ctypes庫來創(chuàng)建了一個一半總數(shù)的緩沖區(qū),隨后立馬刪掉。

但是,這樣會造成臨時的卡頓,并且肉眼可見的內(nèi)存上漲。而且清理的不干凈。果斷放棄這個方案,一點都不順暢。

EmptyWorkingSet

EmptyWorkingSet是windows的一個API,它用來清空指定進程的內(nèi)存中的工作集。將該程序所用的物理內(nèi)存定義為臟頁并轉(zhuǎn)移到磁盤上的內(nèi)存交換文件上,清空該進程占用的物理內(nèi)存,當(dāng)進程再次需要時會再次從外存進行加載。那么加載的過程中可能會導(dǎo)致臨時的卡頓。

市面上的加速球大多用的都應(yīng)該是這個技術(shù)

通過psutil庫,以及搭配win32相關(guān)的庫,實現(xiàn)起來也很方便

import win32api
import win32con
import win32process
import psutil
for pid in psutil.pids():
    try:
        handle =  win32api.OpenProcess(win32con.PROCESS_ALL_ACCESS, False, pid)
        win32process.SetProcessWorkingSetSize(handle, -1, -1)
        win32api.EmptyWorkingSet(handle)
    except Exception:
        continue

而經(jīng)過與某管家進行對比,發(fā)現(xiàn)效果大差不大,他們可能做了一些內(nèi)存整理的優(yōu)化。

進程終止

殺死進程就更簡單了,這里為了避免出問題,我只保留他們的父進程,依舊是通過psutil來實現(xiàn)

import psutil
pid_set = set()
processes = []
# 只遍歷正在運行的進程
for pid in psutil.pids():
    if pid in pid_set:
        continue
    try:
        proc = psutil.Process(pid)
    except psutil.NoSuchProcess:
        continue
    # 只處理父進程
    proc_p = proc.parent()
    if proc_p is not None:
        proc = proc_p
        if proc.pid in pid_set:
            continue
    pid_set.add(proc.pid)
    # 生成進程信息
    process_info = proc.as_dict(attrs=['pid', 'name', 'username', 'status', 'memory_info'])
    process.append(process_info)

而殺死進程則是通過如下代碼實現(xiàn),pid就是指定進程的pid

psutil.Process(pid).kill()

至此,核心功能算是搞完了

完整開發(fā)

既然是加速球,那肯定需要一個界面,這里自己隨手PS畫了個圖,然后用PyQt5寫了個界面出來(寫的時候?qū)嵲谑菒盒耐铝耍?/p>

最后的一個效果如下

雙擊便可進行內(nèi)存清理

右鍵便可打開進程管理,在進程管理界面點擊右鍵即可關(guān)閉

每次只會顯示內(nèi)存占用最多的前十五個進程,點擊即殺死進程

同時為了趣味性,我還設(shè)置了單次分數(shù)和成就,當(dāng)你達到100分時,即可解鎖藍屏見證者稱號。(狗頭)

項目地址:github.com/SSRemex/MemeoryCleaner

到此這篇關(guān)于基于Python制作一個解壓的內(nèi)存加速球的文章就介紹到這了,更多相關(guān)Python內(nèi)存加速球內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Python實現(xiàn)高效提取PDF中的表格數(shù)據(jù)并導(dǎo)出為 TXT或Excel

    Python實現(xiàn)高效提取PDF中的表格數(shù)據(jù)并導(dǎo)出為 TXT或Excel

    在日常辦公、數(shù)據(jù)分析或信息歸檔過程中,我們經(jīng)常會遇到包含表格數(shù)據(jù)的 PDF 文件,本文將演示如何將 PDF 表格數(shù)據(jù)導(dǎo)出為 TXT 和 Excel 文件,有需要的小伙伴可以了解下
    2026-01-01
  • Python中文件遍歷的兩種方法

    Python中文件遍歷的兩種方法

    這篇文章主要介紹了Python中文件遍歷的兩種方法,使用的OS模塊的os.walk和os.listdir實現(xiàn),需要的朋友可以參考下
    2014-06-06
  • python3編碼問題匯總

    python3編碼問題匯總

    本文給通過一個具體的編碼問題的解決辦法,給大家詳細分享了python中的編碼問題的來龍去脈,非常的細致全面,有需要的小伙伴可以參考下
    2016-09-09
  • 使用pandas的box_plot去除異常值

    使用pandas的box_plot去除異常值

    今天小編就為大家分享一篇使用pandas的box_plot去除異常值,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-12-12
  • Python實現(xiàn)周日歷與時間相互轉(zhuǎn)換

    Python實現(xiàn)周日歷與時間相互轉(zhuǎn)換

    周日歷是日常生活中不常用到的歷法系統(tǒng),一般用于政府、商務(wù)的會計年度或者學(xué)校教學(xué)日歷中。本文為大家介紹了如何利用Python語言實現(xiàn)周日歷與時間相互轉(zhuǎn)換,感興趣的可以學(xué)習(xí)一下
    2022-07-07
  • python3反轉(zhuǎn)字符串的3種方法(小結(jié))

    python3反轉(zhuǎn)字符串的3種方法(小結(jié))

    這篇文章主要介紹了python3反轉(zhuǎn)字符串的3種方法(小結(jié)),文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-11-11
  • python實現(xiàn)報表自動化詳解

    python實現(xiàn)報表自動化詳解

    這篇文章主要介紹了python實現(xiàn)報表自動化詳解,涉及python讀,寫excel—xlwt常用功能,xlutils 常用功能,xlwt寫Excel時公式的應(yīng)用等相關(guān)內(nèi)容,具有一定參考價值,需要的朋友可以了解下。
    2017-11-11
  • Python BautifulSoup 節(jié)點信息

    Python BautifulSoup 節(jié)點信息

    這篇文章主要介紹了Python BautifulSoup 節(jié)點信息,文章圍繞主題展開詳細的內(nèi)容介紹,具有一定的參考價值,需要的小伙伴可以參考一下
    2022-08-08
  • Python Pygame中精靈和碰撞檢測詳解

    Python Pygame中精靈和碰撞檢測詳解

    對于游戲中出現(xiàn)的每一樣?xùn)|西,比如磚塊箱子水管地面,還有人物都可以看成是一個獨立的物體,所以每個物體類都繼承了pygame的精靈類pg.sprite.Sprite,這篇文章主要給大家介紹了關(guān)于Python Pygame中精靈和碰撞檢測的相關(guān)資料,需要的朋友可以參考下
    2021-10-10
  • 一篇文章帶你了解python正則表達式的正確用法

    一篇文章帶你了解python正則表達式的正確用法

    這篇文章主要介紹了Python中正則表達式的詳細教程,正則表達式是Python學(xué)習(xí)進階當(dāng)中的重要內(nèi)容,需要的朋友可以參考下
    2021-08-08

最新評論

东源县| 樟树市| 华阴市| 措勤县| 平山县| 汾西县| 集安市| 化德县| 孟津县| 台东市| 措勤县| 屯昌县| 疏勒县| 沈阳市| 宣武区| 吴江市| 秦皇岛市| 阳东县| 万载县| 乌海市| 社旗县| 安仁县| 年辖:市辖区| 千阳县| 津市市| 宜良县| 义乌市| 黄骅市| 县级市| 鞍山市| 新津县| 四平市| 洮南市| 萨迦县| 永安市| 皋兰县| 昆明市| 吴桥县| 民县| 噶尔县| 大庆市|