Also habe ich dieses brilliante kleine AutoIt-Skript, das ich in den letzten paar Jahren benutzt habe. Ursprünglich für Skype entwickelt, wird es verwendet, um den Speicherverbrauch von RAM-Speicheranwendungen auf das Minimum zu reduzieren, das sie benötigen (Nur für Windows) und sie so niedrig wie möglich zu halten und ihnen nur das zu geben, was sie wirklich brauchen. So sieht es aus:Umwandlung von Autoit in Python
#include <Misc.au3>
_Singleton("skype-memory-reducer")
Opt("TrayMenuMode", 1)
Opt("TrayOnEventMode", 1)
TrayCreateItem("Quit")
TrayItemSetOnEvent(-1, "Bye")
TraySetState()
Global Const $interval = 2000 ; interval at which the memory is freed, anything below this will almost certainly only slow down your system.
;here you can add any other process,
;but be carefull which process you choose,
;bacause in some cases this will slow down your application or even your PC
Global $list = "skype.exe|skypePM.exe"
Global $processlist = StringSplit($list, "|")
While 1
For $i = 1 To UBound($processlist) - 1
$pid = ProcessExists($processlist[$i])
If $pid Then _ReduceMemory($pid)
Next
_ReduceMemory(); also reduce the memory used by the script itself...
Sleep($interval)
WEnd
Func Bye()
Exit
EndFunc ;==>Bye
;I don't remember who was the author of this UDF... (it's not me)
Func _ReduceMemory($i_PID = -1)
If $i_PID <> -1 Then
Local $ai_Handle = DllCall("kernel32.dll", 'int', 'OpenProcess', 'int', 0x1f0fff, 'int', False, 'int', $i_PID)
Local $ai_Return = DllCall("psapi.dll", 'int', 'EmptyWorkingSet', 'long', $ai_Handle[0])
DllCall('kernel32.dll', 'int', 'CloseHandle', 'int', $ai_Handle[0])
Else
Local $ai_Return = DllCall("psapi.dll", 'int', 'EmptyWorkingSet', 'long', -1)
EndIf
Return $ai_Return[0]
EndFunc ;==>_ReduceMemory
Nun, ich suche nach dem Versuch, die gleiche Sache aber streng in Python abzuziehen. Entweder durch etwas, das in Python vollständig nativ ist, oder durch etwas, das Autoit-Skripte in Python ausführen kann, ohne dass ein anderer Prozess aufgerufen werden muss.
Jede Hilfe ist dankbar, danke!
EDIT: Nur incase, ich möchte meine Anwendung am Ende tragbar sein. Also versuche ich zu vermeiden, irgendwelche DLLs in Windows zu registrieren (falls jemand dachte, das Win32 Modul zu benutzen) Danke nochmal!
Das ist nichts, wofür man portablen Code schreiben kann, es sei denn, es existiert eine Bibliothek oder man hat Code wie wenn Windows blah macht, wenn Linux bla tut, so weiter. – Corbin
Wie immer ... was hast du bisher probiert? StackOverflow ist für spezifische Fragen; versuche etwas und wenn du ein genau definiertes Problem hast, frag es hier. – Amber
OK, ich habe die Spezifikationen. Lass uns über Gehalt reden. – joaquin