![]() |
Freien Ram ermitteln per .NET
Hallo,
weiß jemand wie man mit .NET die Ramauslastung ermitteln kann ohne auf Windows Routinen runter zu rutschen? Greetz |
Re: Freien Ram ermitteln per .NET
ich gehe folgenden Weg:
namespace System.Managment.ManagmentObject; Hier gibt es ein Object Win32_OperatingSystem, und über dieses bekommst du die verschiedene Eigenschaften; u.a. die ganzen MemoryInfo's Beachte aber, dass am Zielrechner das WMI installiert íst und das Benutzerkonto, das aktuell verwendet wird, über die WMI- und Systemrechte verfügt. :-) thomas |
Re: Freien Ram ermitteln per .NET
hm schade dachte das es vieleicht eine systemunabhänige variante gibt
wozu .NET ja da ist das wenn ein .NET programm auf linux ausgeführt wird immerncoh mit der selben routine der ram ausgelesen wird. hängt ja nur am framework. so ist das ja wieder windows spezifisch |
Re: Freien Ram ermitteln per .NET
hmmmmm,
zwischen Hardware und Framework liegt ja immer das OS und nur das hat Zugriff auf die Hardware (ist relativ, ich weiss). keine Ahnung wie es bei Mono aktuell aussieht, evtl. kannst du hier ja die Abfrage für die Welten IFen.... :-) thomas |
Re: Freien Ram ermitteln per .NET
Zitat:
Anwendung Framework OS Hardware Und genau darum sollte man meinen es gäbe was systemunabhängiges. Denn das Framework ist doch genau dazu gedacht, die Funktionsaufrufe des Programmes in die passenden Funktionsaufrufe für das OS umzusetzen. Wenn ich in der Anwendung FileOpen aufrufe, dann wird unter Windows das Framework CreateFile mit den passenden Parametern aufrufen und unter Linux eben die entsprechende API (Keine Ahnung, wie die unter Linux heißt.). Denn dazu ist es ja da, dass sich der Programmierer, um so was nicht kümmern muss. So warum sollte das jetzt nicht auch bei den Speichermanagmentfunktionen gehen? Diese Frage ist also berechtig und würde mich auch mal interessieren. |
Re: Freien Ram ermitteln per .NET
System.Diagnostics ist Dein Freund. Dort gibt es PerformanceCounter für die Speichergrössen. Die sind übrigens auch schon in dotGNU implementiert und somit Plattformübergreifend verfügbar.
|
Re: Freien Ram ermitteln per .NET
jop so wie luckie das ausformuliert hab meinte ich das auch.
jede routine die man aufruft wird vom framework dann halt anders fürs jeweilige betriebssystem interpretiert bzw weitergeleitet |
Re: Freien Ram ermitteln per .NET
HIER DIE LÖSUNG
RAM GRÖßE BEKOMMEN
Delphi-Quellcode:
FREIE RAM Bytes bekommen
//in MB
function GetMemorySize : int64; var ACounter : PerformanceCounter; begin ACounter := PerformanceCounter.Create('Speicher','Systemcode: Gesamtanzahl Bytes'); Result := Convert.ToInt64(ACounter.NextValue * 0.001); end;
Delphi-Quellcode:
könnte man vieleicht in die Code Libary übernehmen oder?
//in Bytes
function GetFreeMemory : int64; var ACounter : PerformanceCounter; begin ACounter := PerformanceCounter.Create('Speicher','Verfügbare Bytes'); Result := Convert.ToInt64(ACounter.NextValue); end; |
Re: Freien Ram ermitteln per .NET
@Luckie,
stimmt, aber durch das "Win32..." war es ja doch nicht OS-getrennt. System.Diagnostics kannte ich bisher nicht in diesem Zusammenhang; ist natürlich eleganter und OS-unabhängiger! :-) thomas |
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:55 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz