Auf einem 8-GB-Laptop hat VSCode + einige Builds + 20 in Chrome geöffnete Tabs ** schnell keinen Speicher mehr **. Es ist eine sehr strenge Benutzererfahrung wie Stall für jedes Betriebssystem.
Wenn ich darüber nachdenke, wurde ich seit meiner Kindheit oft von meiner Mutter gerügt, weil ich Dinge ausgelassen hatte. Anstatt nur ein Mangel an Gedächtniskapazität, kann dies auf die schwer zu heilende Natur der Kindheit zurückzuführen sein.
Ich denke, es wäre besser, jedes Mal wütend auf meine Mutter zu werden, als mein Verhalten zu korrigieren. Erstellen Sie also eine ** mutterähnliche App **, die Sie warnt, unnötige Software auf Ihrem Desktop zu schließen, wenn der Speicher knapp ist.
--Ubuntu18.04 + gnome3 Umgebung
Um die unter Linux verfügbare Speichermenge abzurufen, verwenden Sie normalerweise den Befehl ** free **.
$ free
total used free shared buff/cache available
Mem: 8124668 4831144 267628 201468 3025896 2774924
Swap: 2097148 512 2096636
Von diesen ist die verfügbare reale Speicherkapazität ** die verfügbare Spalte in der Mem-Zeile **. Grob gesagt wird dieser Wert (anscheinend) berechnet durch ** [freier Speicherplatz + Kapazität, die sofort freigegeben werden kann, z. B. verwendeter Cache] **.
Der Inhalt dieses kostenlosen Befehls ist eine formatierte Version des Inhalts der Pseudodatei / proc / meminfo. Da Dateien für die Verwendung in Python einfacher zu handhaben sind, ** holen Sie sich Informationen aus / proc / meminfo **.
~$ cat /proc/meminfo
MemTotal: 8124668 kB
MemFree: 328384 kB
MemAvailable: 2640012 kB
Buffers: 740992 kB
・ ・ ・(Abkürzung)
Versuchen Sie, die Datei in der interaktiven Shell zu öffnen. Verwenden Sie die Funktion split (), um mit Zeilenumbrüchen und Leerzeichen zu trennen, und überprüfen Sie die Reihenfolge, in der Verfügbar verfügbar ist.
>>> f = open('/proc/meminfo')
>>> f.read().split()
['MemTotal:', '8124668', 'kB', 'MemFree:', '318860', 'kB', 'MemAvailable:', '2631456', 'kB', ...]
>>> f.seek(0)
0
>>> f.read().split()[7]
'2625528'
** Sie müssen nur benachrichtigt werden, wenn ein Element mit einem Index von 7 unter 0,5 GB (500.000 KB) fällt. ** ** ** (Die Basis für 0,5 GB ist irgendwie)
Übrigens, wie Sie dem obigen Beispiel entnehmen können, wird der Inhalt ** jedes Mal, wenn Sie ihn lesen **, auch nach dem Öffnen aktualisiert.
Verwenden Sie den Befehl notify-send. Das Format ist wie folgt.
$ notify-send -u critical --icon=Symbolname"Titel" "Botschaft"
Ich habe mir eine Mutterikone von Herrn Irasutoya geliehen und sie benutzt (ich habe auch eine Mutter mit Live-Action in Betracht gezogen, aber sie war mächtig und ich fühlte den emotionalen Groll).
Platziere das fertige Symbol als ** shikaruhaha.png ** unter ** / usr / share / pixmap **. (Wenn Sie es an einem anderen Ort als / usr / share / pixmap platzieren, müssen Sie den Pfad angeben.)
$ notify-send -u critical --icon=shikaruhaha "Mutters Stimme" "<b>J( 'д')Takashi! Du lässt es nicht chaotisch!</b>"
Wenn Sie das oben genannte ausführen, wird es so.
memwarn.py
#!/usr/bin/python3
import time
import subprocess
with open("/proc/meminfo") as f:
while(True):
f.seek(0)
arr = f.read().split()
available = int(arr[7])
if available < 500000:
subprocess.call(['notify-send', "-u", "critical", "--icon=shikaruhaha", "Mutters Stimme", "<b>J( 'д')Takashi! Du lässt es nicht chaotisch!</b>"])
time.sleep(2)
Starten Sie nach dem Anmelden in der X-Umgebung. Platzieren Sie die folgenden Dateien unter / etc / xdg / autostart /. Nach dem Anmelden wird es automatisch gestartet.
/etc/xdg/autostart/memwarn.desktop
[Desktop Entry]
Name=MemoryMother
Type=Application
Exec=/usr/libexec/memwarn.py
OnlyShowIn=GNOME;
NoDisplay=true
Das ist es
Recommended Posts