Register for your free account! | Forgot your password?

Go Back   elitepvpers Coders Den AutoIt
You last visited: Today at 00:23

  • Please register to post and access all features, it's quick, easy and FREE!

Advertisement



RAM Verbrauch eines Prozesses auslesen?

Discussion on RAM Verbrauch eines Prozesses auslesen? within the AutoIt forum part of the Coders Den category.

Reply
 
Old   #16
 
falaga's Avatar
 
elite*gold: 0
Join Date: May 2009
Posts: 1,103
Received Thanks: 454
Ich werde mal schauen, ob die Werte proportional bei einem einzelnen Prozess sind, also wenn der Arbeitsspeicher steigt.


Edit: Die Differenz zwischen dem Wert durch die Funktion und dem Wert im Task Manager lag immer bei 60.000-70.000 (mit metin2client.exe getestet). Nun kann ich mein eigentliches Programm nochmal weiter ausbauen, danke für deine großartige Hilfe!
falaga is offline  
Old   #17
 
alpines's Avatar
 
elite*gold: 60
Join Date: Aug 2009
Posts: 2,256
Received Thanks: 815
Bei mir ist kein Unterschied trotz Admin-Rechten, oder was war deine Frage?
alpines is offline  
Old   #18
 
elite*gold: 0
Join Date: Mar 2009
Posts: 7,260
Received Thanks: 33,149
Du hast im Taskmanager mehrere Anzeigemöglichkeiten. Betreffend des RAMs hast du sechs Optionen, nicht nur eine. Standardmäßig wird dir aber nur eine der sechs Optionen angezeigt, dieser gibt aber nicht den tatsächlichen Arbeitsspeicherverbrauch wieder, sondern den vom Prozess exklusiv verwendeten Speicher. Die Funktion ProcessGetStats() gibt dir schon den richtigen Wert zurück.
KDeluxe is offline  
Old   #19
 
falaga's Avatar
 
elite*gold: 0
Join Date: May 2009
Posts: 1,103
Received Thanks: 454
Quote:
Originally Posted by KDeluxe View Post
Du hast im Taskmanager mehrere Anzeigemöglichkeiten. Betreffend des RAMs hast du sechs Optionen, nicht nur eine. Standardmäßig wird dir aber nur eine der sechs Optionen angezeigt, dieser gibt aber nicht den tatsächlichen Arbeitsspeicherverbrauch wieder, sondern den vom Prozess exklusiv verwendeten Speicher. Die Funktion ProcessGetStats() gibt dir schon den richtigen Wert zurück.
Ich habe bereits die anderen Optionen durchprobiert, ohne Erfolg. Die Antworten die ich da bekam hatten nicht annähernd etwas mit dem Verbrauch, er um Taskmanager angezeigt wird zu tun.
falaga is offline  
Old   #20
 
elite*gold: 0
Join Date: Mar 2009
Posts: 7,260
Received Thanks: 33,149
Vielleicht habe ich mich einfach nicht verständlich genug ausgedrückt. Also noch einmal:
Du hast im Task-Manager mehrere Anzeigeoptionen betreffend des Arbeitsspeichers. Sechs in der Zahl. Das was du siehst ist nur eine der sechs Optionen. Dieser Wert zeigt aber nur den physikalisch genutzten Arbeitsspeicher an, den NUR der Prozess verwenden kann. Die tatsächliche Arbeitsspeicherverwendung liegt höher, es gibt allerdings auch gemeinsam genutzten Arbeitsspeicher.
Die Funktion ProcessGetStats() gibt dir den tatsächlich genutzten Wert zurück, dabei spielt es keine Rolle, ob es sich dabei um den privaten Arbeitsspeicher oder den gemeinsam genutzten Arbeitsspeicher geht. Diesen Wert kannst du dir auch im Taskmanager anzeigen.

Hier mal ein konkretes Beispiel:
Code:
$mem = ProcessGetStats("explorer.exe")
If IsArray($mem) Then
    MsgBox(64, "Info", _
        "WorkingSetSize: " & Int($mem[0] / 1024) & " K" & @CRLF & _
        "PeakWorkingSetSize: " & Int($mem[1] / 1024) & " K")
EndIf
Ausgabe:
Quote:
WorkingSetSize: 70392 K
PeakWorkingSetSize: 72008 K
Taskmanager:


Du suchst momentan allerdings den privat genutzten Arbeitsspeicher (in diesem Beispiel "19.584 K"). Das einfachste wäre, wenn du dir im Taskmanager die zusätzliche Spalte anzeigen lässt und mit diesem Wert arbeitest. Alternativ kannst du natürlich auch googlen, wie du den vom Prozess privat genutzten Arbeitsspeicher herausfinden kannst. Aus Erfahrung kann ich dir allerdings schon sagen, dass der "PrivateUsage" Wert der Struktur nicht dem angezeigten Wert des privaten Arbeitsspeichers im Taskmanager entspricht.
KDeluxe is offline  
Reply


Similar Threads Similar Threads
Klassenfunktion eines anderen Prozesses ausfürhen
04/21/2013 - C/C++ - 19 Replies
Hallo, ich beschäftige mich im Moment mit Reverse Engineering und dem Schreiben eines Bots für ein RTS-Spiel und brauche dabei etwas Hilfe. Die Programme, die ich benutze sind CheatEngine und IDA Pro. Bei dem Spiel handelt es sich um Heroes of Newerth. Der Programmcode für das Spiel befindet sich in 3 Dlls: 1) k2.dll: enthält viele Klassen und einige statische Pointeradressen, die exportiert werden 2) game_shared.dll: enthält weitere Klassen, die exportiert werden 3) cgame.dll: hier...
[VB.Net] Auslesen eines MultiOffsets
02/23/2010 - .NET Languages - 3 Replies
Hey, ich wollte mal fragen da sich bei der suche danach nichts wirklich was ergeben hat wollte ich frage wie ich in vb.net einen Multi Offset auslesen kann es gibt ja in AutoIt die Funktion _MemoryPointerRead in der NormadeMemory.au3 da wird ja auch die funktion ReadProcessMemory verwenden doch wie bekomme ich das in VB.net umgeschrieben? Hab mich schon mal probiert: Public Function ReadFloatPointer(ByVal ProcessName As Process, ByVal Base As Integer, ByVal Offset As Short()) Dim...
Wie erlange ich die PID eines Prozesses für z.B. WriteProcessMemory
11/06/2008 - Coding Tutorials - 4 Replies
An die, die noch nicht wissen, wie sie ein Handle eines Prozesses erlangen, folgt hier ein kleiner Beispielquelltext . Beispielprogramm: .386 .model flat, stdcall option casemap :none include windows.inc include kernel32.inc include user32.inc



All times are GMT +2. The time now is 00:25.


Powered by vBulletin®
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
SEO by vBSEO ©2011, Crawlability, Inc.

Support | Contact Us | FAQ | Advertising | Privacy Policy | Terms of Service | Abuse
Copyright ©2026 elitepvpers All Rights Reserved.