Ermitteln wieviel Speicher ein Programm gerade verbraucht ?
Ermitteln wieviel Speicher ein Programm gerade verbraucht ?
Hallo...
Wie kann ich ermitteln, wieviel Speicher gerade ein Programm im RAM belegt ?
Ich meine so wie es der Taskmanager anzeigt unter "Arbeitsspeicher".
Ziel ist eine Anzeige z.B. wieviel MB Speicher z.B. der PluginContainer des Firefox belegt.
Wie kann ich ermitteln, wieviel Speicher gerade ein Programm im RAM belegt ?
Ich meine so wie es der Taskmanager anzeigt unter "Arbeitsspeicher".
Ziel ist eine Anzeige z.B. wieviel MB Speicher z.B. der PluginContainer des Firefox belegt.
PureBasic 6.21 (Windows x86/x64) | Windows11 Pro x64 | AsRock B850 Steel Legend Wifi | R7 9800x3D | 64GB RAM | GeForce RTX 5080 | ThermaltakeView 270 TG ARGB | build by vannicom
Re: Ermitteln wieviel Speicher ein Programm gerade verbrauch
http://www.rsbasic.de/aktualisierung/wi ... mitteln.pb
Wenn du stattdessen einen anderen Prozess ermitteln möchtest, kannst du das auch machen. Du brauchst nur die PID-Nummer des jeweil. Prozesses.
Wenn du stattdessen einen anderen Prozess ermitteln möchtest, kannst du das auch machen. Du brauchst nur die PID-Nummer des jeweil. Prozesses.
Re: Ermitteln wieviel Speicher ein Programm gerade verbrauch
Ich wollt gerade posten, dass ich was gefunden habe 
Nunja, dein Code aus deiner WinApi Lib klappt leider nicht, da nicht das richtige handle ermittelt wird.
Es fehlt irgendwie das OpenProcess_()...
Ich hab da einen Code im englischen Forum von NetMaestro gefunden, der deinem ähnelt.
Ich hab ihn ein wenig modifiziert, und heraus kam folgendes :
Nunja, dein Code aus deiner WinApi Lib klappt leider nicht, da nicht das richtige handle ermittelt wird.
Es fehlt irgendwie das OpenProcess_()...
Ich hab da einen Code im englischen Forum von NetMaestro gefunden, der deinem ähnelt.
Ich hab ihn ein wenig modifiziert, und heraus kam folgendes :
Code: Alles auswählen
Structure PROCESS_MEMORY_COUNTERS
cb.l
PageFaultCount.l
PeakWorkingSetSize.i
WorkingSetSize.i
QuotaPeakPagedPoolUsage.i
QuotaPagedPoolUsage.i
QuotaPeakNonPagedPoolUsage.i
QuotaNonPagedPoolUsage.i
PagefileUsage.i
PeakPagefileUsage.i
EndStructure
Prototype GetProcessMemoryInfo( hProcess, address, size )
Procedure.i GetMemoryUsage(PID.i)
Protected hProcess.i, Result.i = 0, psapi.i
Protected pmc.PROCESS_MEMORY_COUNTERS
Protected GetProcessMemoryInfo_.GetProcessMemoryInfo
If PID
hProcess = OpenProcess_( #PROCESS_QUERY_INFORMATION | #PROCESS_VM_READ, #False, PID )
If (hProcess=0)
ProcedureReturn 0
EndIf
psapi = OpenLibrary(#PB_Any, "psapi.dll")
If psapi
GetProcessMemoryInfo_.GetProcessMemoryInfo = GetFunction(psapi, "GetProcessMemoryInfo")
If GetProcessMemoryInfo_( hProcess, @pmc, SizeOf(pmc))
Result.i = pmc\WorkingSetSize
EndIf
CloseLibrary(psapi)
Else
ProcedureReturn 0
EndIf
ProcedureReturn Result
EndIf
EndProcedure
PureBasic 6.21 (Windows x86/x64) | Windows11 Pro x64 | AsRock B850 Steel Legend Wifi | R7 9800x3D | 64GB RAM | GeForce RTX 5080 | ThermaltakeView 270 TG ARGB | build by vannicom
Re: Ermitteln wieviel Speicher ein Programm gerade verbrauch
pb aktuel 6.2 windoof aktuell und sowas von 10
Ich hab Tinnitus im Auge. Ich seh nur Pfeifen.
Ich hab Tinnitus im Auge. Ich seh nur Pfeifen.
- NicTheQuick
- Ein Admin
- Beiträge: 8838
- Registriert: 29.08.2004 20:20
- Computerausstattung: Ryzen 7 5800X, 64 GB DDR4-3200
Ubuntu 24.04.2 LTS
GeForce RTX 3080 Ti - Wohnort: Saarbrücken
Re: Ermitteln wieviel Speicher ein Programm gerade verbrauch
Falls der Hintergrund der Frage der meist immense Speicherverbrauch des Firefoxs ist, könnte dieser Artikel auch noch interessant für dich sein: Firefox-Entwickler reduzieren Speicherverbrauch
Re: Ermitteln wieviel Speicher ein Programm gerade verbrauch
Nunja Firefox war nur ein Beispiel... genaugenommen ist es für einen sehr schlecht programmierten Client eines MMORPG,NicTheQuick hat geschrieben:Falls der Hintergrund der Frage der meist immense Speicherverbrauch des Firefoxs ist, könnte dieser Artikel auch noch interessant für dich sein: Firefox-Entwickler reduzieren Speicherverbrauch
der sich laufend Ram zubunkert und dann bei erreichten 2GB abschmiert...
Daher eine kleine Warnung bei 1,8GB und der Client kann kontrolliert beendet werden...
PureBasic 6.21 (Windows x86/x64) | Windows11 Pro x64 | AsRock B850 Steel Legend Wifi | R7 9800x3D | 64GB RAM | GeForce RTX 5080 | ThermaltakeView 270 TG ARGB | build by vannicom
- NicTheQuick
- Ein Admin
- Beiträge: 8838
- Registriert: 29.08.2004 20:20
- Computerausstattung: Ryzen 7 5800X, 64 GB DDR4-3200
Ubuntu 24.04.2 LTS
GeForce RTX 3080 Ti - Wohnort: Saarbrücken
Re: Ermitteln wieviel Speicher ein Programm gerade verbrauch
Klingt ja stark nach einem Speicherleck. Da wäre vielleicht ein Bugreport an den Entwickler hilfreich.
Re: Ermitteln wieviel Speicher ein Programm gerade verbrauch
Soweit ich weiß bekommt jede 32 Bit-Anwendung nur maximal 2 GB-Adressraum. Aber ob das Abstürzen normal ist, weiß ich nicht.
Re: Ermitteln wieviel Speicher ein Programm gerade verbrauch
Natürlich ist das normal, wenn keine Überprüfung eingebaut wurde,
ob Speicher reserviert werden konnte oder nicht.
Ich sag nur: IMA
ob Speicher reserviert werden konnte oder nicht.
Ich sag nur: IMA

