vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
SEPA-Dateien erstellen inkl. IBAN-, BLZ-/Kontonummernprüfung  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2024
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

VB.NET - Ein- und Umsteiger
Ermittlung Größe des realen Arbeitsspeichers 
Autor: BasicOpa
Datum: 14.01.20 13:58

Hallo zusammen,

steht in VB.Net eine Funktion zur Verfügung, die Größe des auf dem PC vorhandenen realen Arbeits-Speichers zu ermitteln? Wenn ja, wie ist sie anzuwenden?

Vielen Dank im voraus
BasicOpa
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Ermittlung Größe des realen Arbeitsspeichers 
Autor: Manfred X
Datum: 14.01.20 21:30

Hallo!

Realer Arbeitsspeicher?
Es gibt die Windows Auslagerungsdatei,
vom System belegte Speicherbereiche,
komprimierte Bereiche, die aktuell nicht in Verwendung sind,
über Speicher-Treiber fest vergebene und deshalb nicht frei verfügbare Abschnitte
usw.
Was genau möchtest Du ermitteln? Zu welchem Zweck?
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Ermittlung Größe des realen Arbeitsspeichers 
Autor: BasicOpa
Datum: 15.01.20 00:45

Hallo Manfred,

ich möchte die tatsächliche Hardware-Ausstattung ermitteln. Unabhängig von Belegungszustand, virtueller Verfügbarkeit etc.

Zweck: Je nach Hardware-Ausstattung des PC sollen in abgestufter Form Programm-Varianten verfügbar sein oder nicht. Wissend, dass es lediglich Richtwerte sein können, weil sie ja nichts über die jeweils gegenwärtige Verfügbarkeit aussagen.

Viele Grüße
BasicOpa
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Ermittlung Größe des realen Arbeitsspeichers 
Autor: Wobi
Datum: 15.01.20 00:51

Hallo,
was verstehst du unter "realem" Arbeitsspeicher?
Meinst du den auf dem Mainboard physisch verbauten Arbeitsspeicher oder den zu irgendeinem von dir zu ermittelnden verfügbaren Arbeitsspeicher zu einem gewissen Zeitpunkt?

Ersten Punkt kannst du evtl. über WMI ermitteln, aber in der Praxis bringt das nichts, denn Windows in heutigen Versionen verwaltet den Arbeitsspeicher selbst, da werden Prioritäten entsprechend der grade aktiven Programme gesetzt usw.

Wofür brauchst du diese Angabe? Es ist heute nicht mehr möglich aufgrund der Menge des RAM auf die Leistungsfähigkeit eines Programms zu schließen so wie das unter DOS noch der Fall war.

Windows "krallt" sich heutzutage alles was es bekommen kann, verwaltet es aber auch sehr gut.

Gruß
Frank
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Ermittlung Größe des realen Arbeitsspeichers 
Autor: Manfred X
Datum: 15.01.20 07:11

Beispiele:
https://stackoverflow.com/questions/105031/how-do-you-get-total-amount-of-ram-the-computer-has
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Ermittlung Größe des realen Arbeitsspeichers 
Autor: BasicOpa
Datum: 16.01.20 12:21

Hallo Manfred,

vielen Dank für die Info. Dann werde ich mal sehen, ob ich was geeignetes finde …

Viele Grüße
BasicOpa
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Ermittlung Größe des realen Arbeitsspeichers 
Autor: BasicOpa
Datum: 16.01.20 12:38

Hallo Frank (Wobi),

vorab - vielen Dank für die Antwort.

Es ist mir bekannt, dass der real auf dem Computer befindliche Arbeitsspeicher nichts zu seiner jeweiligen Verfügbarkeit aussagt. Auch ist mir die Existenz von Auslagerungs-Bereichen, virtuellem Speicher etc. bekannt. Natürlich habe ich keine Ahnung wie Win10 damit umgeht.

Darum geht es bei meinem Bedarf nicht.

Bei jeder Art von Programmen sind in er Regel Mindestanforderungen zum Betrieb der Programme genannt. Darunter auch eine Aussage zum Speicher. Zum Beispiel 16 GB RAM. Ich denke eine solche Grenze sagt aus, dass unterhalb dieser das betreffende Programm nicht - zumindest nicht "vernünftig" laufen kann. Und zwar ganz und gar unabhängig von den Fragen interner Verfügbarkeit.

In meinem Fall möchte ich bestimmte Funktionen unterhalb gewisser RAM-Grenzen erst gar nicht zulassen, ohne damit das gesamte Programm damit auszuschließen.

Viele Grüße
BasicOpa
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Ermittlung Größe des realen Arbeitsspeichers 
Autor: effeff
Datum: 16.01.20 18:35

Du willst die Größe des verbauten RAMs auslesen...

Stichwort: My.Computer.Info.TotalPhysicalMemory

BTW: Ich glaube nicht, dass Du es fertig bekommst, 16 GB auszulasten...

EALA FREYA FRESENA

Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Ermittlung Größe des realen Arbeitsspeichers 
Autor: BasicOpa
Datum: 17.01.20 12:03

Hallo Effeff,

… wetten dass …

viele Grüße
BasicOpa
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Ermittlung Größe des realen Arbeitsspeichers 
Autor: Manfred X
Datum: 17.01.20 20:54

Hallo!

Wohl mit einem effektiv strukturierten und implementierten Programm.
Aber natürlich kann man mit nur einer "blödsinnigen" Anweisung jedes System sprengen.
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Ermittlung Größe des realen Arbeitsspeichers 
Autor: effeff
Datum: 18.01.20 10:40

Das glaube ich nicht - dann ist Dein Programm sehr ineffektiv; Ich komme nicht mal an meine 16 GB heran, wenn ich Videobearbeitung mache oder mittels Lightroom mehrere tausend Bilder exportiere.

Was macht denn Dein Programm - und wie macht es das?

EALA FREYA FRESENA

Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Ermittlung Größe des realen Arbeitsspeichers 
Autor: BasicOpa
Datum: 18.01.20 13:14

Hallo Manfred, hallo Effeff,

vorab: vor lauter Blödsinn meinen Speicher "zu ballern" ist nicht mein Bestreben.

Probleme mit der Speichergröße hat mein Programm, wenn es auf Rechnern läuft, die über - nach heutigen Verhältnissen - eher wenig RAM verfügen. Z.B < 4.

Teil meines Programms ist es, den Verlauf von Eisenbahnschienen grafisch darzustellen. Die Bereiche erstrecken sich mitunter über Rechtecke deren reales Maß schon mal 20 mal 10 km ausmacht. Die Darstellung muss so erfolgen, dass die Gleisverläufe klar erkennbar sind und nicht ineinander übergehen.

Möglich, dass ich das nicht so programmiert habe, damit auch wenig Speicherplatz zur Anzeige reicht. Ich zeichne die Abläufe in eine größenmäßig angepasste PictureBox - und da kommt dann gelegentlich die Meldung "Zu wenig Speicherplatz". Um das zu verhindern, versuche ich die betreffende Funktion bein kleinen Speichern erst gar nicht zuzulassen.

Natürlich bin ich offen für Hinweise, wie man das besser machen könnte. Gleichwohl gilt für mich auch immer mal wieder der Grundsatz "der Zweck heiligt die Mittel". Un in meinem Alter kommt dazu, dass das, was man 50 Jahre gemacht hat langsam schwerer fällt, künftig anders zu machen ...

Viele Grüße
BasicOpa
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Ermittlung Größe des realen Arbeitsspeichers 
Autor: Kuno60
Datum: 18.01.20 19:14

BasicOpa schrieb:
Zitat:

Möglich, dass ich das nicht so programmiert habe, damit auch
wenig Speicherplatz zur Anzeige reicht. Ich zeichne die
Abläufe in eine größenmäßig angepasste PictureBox - und da
kommt dann gelegentlich die Meldung "Zu wenig
Speicherplatz". Um das zu verhindern, versuche ich die
betreffende Funktion bein kleinen Speichern erst gar nicht
zuzulassen.


Hallo BasicOpa,

es ist gut möglich den Arbeitsspeicher voll auszulasten, wenn man zum Beispiel sehr große Datenmengen auswertet und sämtliche Ergebnisse zwischenspeichert.

Die Meldung "Zu wenig Speicherplatz" kann auch kommen, wenn der Grafikspeicher nicht ausreicht. Dies ist zum Beispiel der Fall, wenn ich eine OSM-Karte von München zeichne und dann gleichzeitig eine OSM-Karte von Hamburg zeichne. Da die einzelnen Punkte zu weit entfernt liegen, reicht der Grafikspeicher nicht aus. Auch kommt da der Datentyp Single an seine Grenzen (zeichnen mit PointF, RectangleF usw.).
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Ermittlung Größe des realen Arbeitsspeichers 
Autor: Manfred X
Datum: 18.01.20 19:45

Schreibe eine Funktion, in der du die Gesamt-Graphik in gleich große Quadrate
unterteilst und zu jedem dieser Teil-Quadrat zusätzlich speicherst, welches Rectangle
des Gesamtbildes es enthält. Jede Teilgraphik wird in einer Datei als JPG oder PNG
gespeichert.
Einer zweiten Funktion übergibst Du als Parameter eine beliebigen Ausschnitt des Gesamtbildes
mit Angaben zur Position (Location, Size) im Gesamtbild. Diese Routine zerlegt das übergebene
Bild (Bitmap) und trägt die Abschnitte in die entsprechenden Teilgraphiken ein (laden,
aktualisieren, speichern)
Als drittes benötigst Du die Umkehrfunktion, die als Parameter den anzuzeigenden
Abschnitt des Gesamtbildes angibt (Location, Size) und aus den Teilgraphiken den
angeforderten Abschnitt zusammensetzt und als Bitmap zurückgibt.
Das ist jeweils nur ein bißchen Rechenarbeit und Nutzung der Methoden der
Graphics-Klasse (DrawImage).
Als weiteren Parameter der beiden letztgenannten Funktionen könntest du einen
Zoomfaktor einbauen, der es ermöglicht die Loaction/Size Angaben im Parameter
in den internen Maßstab der Teilgraphiken umzurechnen.

Der Trick besteht also darin, immer nur den gerade erstellten oder zur Anzeige benötigten
Bildausschnitt im Speicher zu halten.
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Ermittlung Größe des realen Arbeitsspeichers 
Autor: BasicOpa
Datum: 19.01.20 14:23

Hallo Manfred,

ja - genau so sollte wohl mein ansatz sein. Und so in etwa hab ich das auch - funktionierend - realisiert. Jedenfalls im Hinblick auf die Unterteilung in Teilbereiche. Ich versuche zunächst eine Gesamtansicht und zwar in dem ich die Zoomstufe zu anpasse, dass das Gesamtbild in eine PictureBox passt. Die verbringe ich dann in ein Panel und zeige dieses an. Für die Ermittlung dieser Zoomstufe ist hilfreich, wo die speicherbedingten Grenzen schon mal grundsätzlich sind. In der Folge legt ein User dann ein Lasso über einen Ausschnitt der Gesamtanzeige. Diesen Ausschnitt zeige ich in "vernünftiger" Größe an.

Mein Weg unterscheidet sich lediglich dadurch, dass ich nicht in festen Quadraten vorgehe, sondern den User variable Ausschnitte wählen lasse.

Inzwischen ermittle ich - auf sehr einfache Weise - den vorhandenen RAM. Mein Problem ist also gelöst.

Auf jeden Fall - vielen Dank für die Hilfe
BasicOpa
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Ermittlung Größe des realen Arbeitsspeichers 
Autor: Manfred X
Datum: 21.01.20 11:21

Nein, Du realisierst etwas anderes als meinen Vorschlag.
In meinem Beispiel werden nur die aktuell benötigten Abschnitte
im Speicher gehalten. Die festgelegten Abschnitte in meinem
Beispiel dienen nur der Speicherung des Bildes - die Anzeige
wird aus den jeweils benötigten Speicherbildern zusammengesetzt.
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Ermittlung Größe des realen Arbeitsspeichers 
Autor: sv00010
Datum: 21.01.20 11:47

Timer einbauen, welcher ab und zu mal GC.Collect aufruft ?
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Ermittlung Größe des realen Arbeitsspeichers 
Autor: BasicOpa
Datum: 21.01.20 11:59

Hallo Manfred,

… das stimmt. Allerdings führen beide Wege letztlich zum selben Ergebnis, nämlich detailliert und gleichzeitig nur einen verhältnismäßig kleinen Ausschnitt anzuzeigen.

Die grundsätzliche Voreinstellung in Quadrate oder Rechtecke hat im speziellen Zusammenhang mit meiner Anwendung dann einen Nachteil, wenn die userbezogene Auswahl sich über die Grenze zweier vorbestimmten Bereiche erstreckt. Wie ich es mache kann ein User durch seine individuelle Bestimmung des Ausschnitts genau das vermeiden.

Viele Grüße
BasicOpa
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Ermittlung Größe des realen Arbeitsspeichers 
Autor: Manfred X
Datum: 21.01.20 16:22

Wie oben bereits beschrieben, lädt man dann eben sukzessive zwei
(oder vier) gespeicherte Abschnitte und zeichnet jeweils den für die
benötigte Abmessung erforderlichen Ausschnitt in eine Bitmap.
Der Hauptspeicherbedarf wird dadurch minimiert.
Man kann riesige Pläne in sehr guter Auflösung auf der Festplatte
speichern und relativ effizient Abschnitte in Orignalgröße oder
heruntergezoomt / verkleinert anzeigen.
Wenn der User sich durch das Bild bewegen will, kannst Du während der
Anzeige eines Abschnitts in einem (oder mehreren) Hintergrund-Thread
das nächste Bild (in der Bewegungsrichtung des Users) aufbauen.

Beitrag wurde zuletzt am 21.01.20 um 16:29:43 editiert.
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2024 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel