Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi RAM Optimizer (https://www.delphipraxis.net/21022-ram-optimizer.html)

HomerGER 26. Apr 2004 21:14


RAM Optimizer
 
Hallo
weiß jemand wie ich ein RAM Optimizer programmiere
ich weiß leider noch nicht mal den ansatz
welchen teil des speichers ich auslesen mus und welchen ich noch freigeben kann

SirThornberry 26. Apr 2004 21:16

Re: RAM Optimizer
 
Der einfachste ansatz ist glaube soviel speicher anzufordern wie der arbeitsspeicher groß ist. Somit wird dieser leergeräumt und das zeugs in die auslagerungsdatei verschoben. Dann gibst du den speicher wieder frei den du angefordert hast und somit ist wieder bissl platz im arbeitsspeicher.

Luckie 26. Apr 2004 22:03

Re: RAM Optimizer
 
Sollche Tools sind meiner Meinung totaler Quatsch. Man zwingt damit Windows alles auszulagern. Schön und was hat man davon? Gar nichts - eher Nachteile.

Warum hat man nichts davon? Nehmen wir an der Arbeitsspeicher ist "voll" und ich starte jetzt eine speicherintensive Anwending, dann lagert Windows automatisch aus damit diese neugestartete Anwendung genug Speicher hat. Und braucht sie mehr, bekommt sie auch mehr.

Zwinge ich jetzt Windows dazu den RAM frei zu schaufeln, hat das den Effekt, das Windows sofort alles was es benötigt wieder nachladen muss, während wenn ich das Speichermanagement Windows überlasse, Windows selbst entscheiden kann, welche Speicherseiten erstmal nicht gebraucht werden uns ausgelagert werden können.

Fazit: Ich meine, man fährt immer besser damit, aus Performancegründen, nicht in das Speichermanagement von Windows einzugreifen. Denn nur Windows weiß am besten, wie es den Speicher für sich am effizientesten organisiert.

morbo 26. Apr 2004 22:28

Re: RAM Optimizer
 
Zitat:

Zitat von HomerGER
Hallo
weiß jemand wie ich ein RAM Optimizer programmiere
ich weiß leider noch nicht mal den ansatz
welchen teil des speichers ich auslesen mus und welchen ich noch freigeben kann

Hi,
du könntest fragmentierten Speicher a la defrag wieder in Form bringen. Sollte bei Allem was etwas länger läuft einen Vorteil bringen.

Gruß

HomerGER 26. Apr 2004 23:48

Re: RAM Optimizer
 
@Luckie - ich mus dir aus vollen herzen recht geben
beispiel :
speicher : 512MB
belegte speicher ca. 254
frei speicher ca. 258 warum soll ich jetzt noch was freigeben

ja ja ich weiß es gibt fälle wo ne menge auf ist und dann der peicher schnell verbraucht wird und win anfängt auszulagern

aber leider soll ich sowas schreiben und ich weiß wirklich nicht wie ich da anfangen soll

@morbo das mit den defrag hört sich gut, an hast du auch ein ansatz ?

jbg 27. Apr 2004 00:36

Re: RAM Optimizer
 
Zitat:

Zitat von HomerGER
@morbo das mit den defrag hört sich gut, an hast du auch ein ansatz ?

Dann erlange mal die Rechte um auf Ring 0 zu laufen, damit dich der Prozessor an das Paging heran lässt. Wenn du das dann doch irgendwie geschafft hast, kannst du die Speicherseiten nach Lust und Laune verschieben (nicht nur Adressen austauschen, sondern auch im physikalischen Speicher herumkopieren). Wenn du das dann hast, musst du Windows irgendwie beibringen, dass die Speicherseiten nun nicht mehr dort sind, wo sie vor deiner Aktion waren. Das ist natürlich nicht notwendig, wenn Windows nur die vom Prozessor bereitgestellten Mittel zur Verwaltung benutzt, was es aber sicherlich nicht macht.

Meine Meinung zu Speicherdefragmentierung:
Ich halte das Defragmentieren von Arbeitsspeicher für Schwachsinn. Zum einen macht es keinen Geschwindigkeitsunterschied bei RAM aus, wenn du querfeldein auf den Speicher zugreifst und zum anderen muss nichts mechanisches, wie z.B. bei der Festplatte, bewegt werden.
Des weiteren kann der Speicher aus Sicht einer Anwendung fast gar nicht fragmentieren, denn im den 4 GB großen virtuellen Adressraum, bei dem 2 GB zur freien Verfüngung stehen, ist normalerweise immer genug Platz.

negaH 27. Apr 2004 00:45

Re: RAM Optimizer
 
Zitat:

Ich halte das Defragmentieren von Arbeitsspeicher für Schwachsinn. Zum einen macht es keinen Geschwindigkeitsunterschied bei RAM aus, wenn du querfeldein auf den Speicher zugreifst
Jay, das stimmt wenn man den RAM alleine betrachtet. Es stimmt aber nicht mehr wenn man die Caches in die Rechnung mit einbezieht. Es macht ab diesem Moment einen gewaltigen Unterschied ob man wahllos oder sequentiell den RAM anspricht. Angenommen wir haben 512Kb Cache und dessen Cache-Line wurde auf utopische 512Kb eingerichtet. Wird nun per Zufall immer 1 Byte aus 512Mb RAM geladen, aber so das niemals 2 nachfolgende Bytes innerhalb von 512Kb im RAM liegen, dann veranlasst das Caching für JEDES gelesene Byte jeweils 512Kb aus dem RAM zu lesen. Statt also 1 Byte pro Zugriff werden 512Kb gelesen. In diesem utopischen Fall, der aber exakt erklärt warum ein großer Cache nicht unbedingt alles schneller macht, würde man ein Slowdown von 1/524288 erreichen, scheinbar wäre der Rechner dann also 524288 mal langsammr als gewohnt.

Allerdings, die Kernaussage ist absolut richtig. Ein RAM Defragmentierer ist Schwachsinn, und ein Risiko obendrein.

Gruß Hagen

HomerGER 27. Apr 2004 00:47

Re: RAM Optimizer
 
was machen dann aber solche RAM Optimizer wie bei TuneUp Utility usw weiter ?

Luckie 27. Apr 2004 00:48

Re: RAM Optimizer
 
Augenwischerei?

HomerGER 27. Apr 2004 00:54

Re: RAM Optimizer
 
das wollte ich hören
denn mein tool sollte nur sinnvolle einstellungen machen die auch was bringen
dann lass ich erstmal die finger davon

negaH 27. Apr 2004 01:27

Re: RAM Optimizer
 
Wieso ??

Wenn du so einen superguten RAM Optimierer mit einbaust, bunte Regler dazu, ganz fett auf dem Prospekt wirbst, dann ist es sehr wahrscheinlich einen sinnvolle Profitsterigerung im Verkauf !

Sogesehen ist es schon sinnvoll ein solches Feature zu integrieren.

Meine kleine Schwester hat das Ding getestet und tatsächlich hatte sie danach das untrügliche GEFÜHL das ihr Rechner schneller läuft.

Ich persönlich bevorzuge aber die Methode des Handauflegens :) Meistens ruft mich meine Freundin dann per Telefon an. Ich falte dann meine Hände ca. 30 cm vor meinem Gesicht in Richtung Handy, schließe meine Augen ganz ganz fest zu, und fange langsam und immer lauter werdend an zu brummen. Das geht dann 5 Minuten so und endet in einem befreiendem Schrei um übers Telefon die schlechte Energie aus dem Rechner zu vertreiben. Danach läuft der Rechner meiner Freundin nach ihren Aussagen viel viel schneller.

Andere die ich kenne haben sich einen Experten aus Japan eingeflogen. Der hat dann den Rechner im Babyblau angepinselt und aus einer Ecke im Raum in die andere Ecke des Raumes versetzt. Nun, laut Feng Soft, einer alten japanischen Tradition, hat das den Energiefluß im Rechner enorm beruhigt. Laut Aussagen meiner Freunde hat sich die lästige Defragmentierung des RAM's dadurch ca. um 75% reduziert und sogar der Stromverbrauch des Rechners wurde reduziert (wahrscheinlich weil jetzt die Feng-Soft-Energie durch den Rechner strömt). Alledings, jedesmals wenn ich zu Besuch bin stolpere ich über die blöden Kabel die quer im Raum liegen.

Abgesehen von diesem kleinen Problem, zeigt dies das man NICHT teure Software kaufen muß, der Glaube kann viel mehr erreichen :)


Gruß Hagen

morbo 27. Apr 2004 06:47

Re: RAM Optimizer
 
Zitat:

Zitat von jbg
Meine Meinung zu Speicherdefragmentierung:
Ich halte das Defragmentieren von Arbeitsspeicher für Schwachsinn. Zum einen macht es keinen Geschwindigkeitsunterschied bei RAM aus, wenn du querfeldein auf den Speicher zugreifst und zum anderen muss nichts mechanisches, wie z.B. bei der Festplatte, bewegt werden.
Des weiteren kann der Speicher aus Sicht einer Anwendung fast gar nicht fragmentieren, denn im den 4 GB großen virtuellen Adressraum, bei dem 2 GB zur freien Verfüngung stehen, ist normalerweise immer genug Platz.

Hi,
wenn der Rechner allerdings anfängt zu swappen könnte ich mit vorstellen das es etwas bringt. Eine Verdoppelung des Arbeitsspeichers ist aber sicherlich sinvoller.

Gruß

MathiasSimmack 27. Apr 2004 08:45

Re: RAM Optimizer
 
Zitat:

Zitat von negaH
Ich persönlich bevorzuge aber die Methode des Handauflegens :) Meistens ruft mich meine Freundin dann per Telefon an. Ich falte dann meine Hände ca. 30 cm vor meinem Gesicht in Richtung Handy, schließe meine Augen ganz ganz fest zu, und fange langsam und immer lauter werdend an zu brummen. Das geht dann 5 Minuten so und endet in einem befreiendem Schrei um übers Telefon die schlechte Energie aus dem Rechner zu vertreiben. Danach läuft der Rechner meiner Freundin nach ihren Aussagen viel viel schneller.

Hm, so was habe ich mal in einem Film über Howard Stern (?) gesehen. Der hat auch durch´s Radio gebrummt. Aber es war irgendwie kein Rechner, der danach schneller gelaufen ist ... :mrgreen:

negaH 27. Apr 2004 10:57

Re: RAM Optimizer
 
Zitat:

Hi,
wenn der Rechner allerdings anfängt zu swappen könnte ich mit vorstellen das es etwas bringt. Eine Verdoppelung des Arbeitsspeichers ist aber sicherlich sinvoller.
Gerade in diesem Moment ist es eben besser Windows machen zu lassen. Was bitte schön soll ein RAM "Optimierer" dann wirklich nützen ?!. Wenn man einigermaßen verstanden hat WIE der Windows-Speichermanager arbeitet, dann wird einem klar das es eigentlich unlogisch ist, dadurch das man dem Speichermanager zusätzliche Steine in den Weg legt, die Gesamtsituation dramatisch verbessern zu wollen.
Mit Ach und Krach versucht der Speichermanager notwendigen RAM freizuschaufeln, und da kommt der RAM Optimierer und will noch mehr RAM haben ??? Der gleich nach dieser Aktion wieder durch den Speichermanager vollgeladen wird damit die restlichen Programme wieder anlaufen können. Nein, wenn ich 512Mb Hauptspeicher habe dann erwarte ich das der Speichermanager diesen Speicher auch nutzt, und nicht zwangsauslagert !
Zudem, wir diskutieren hier über ein Protected Mode OS mit virtueller Speicherverwaltung. Der RAM Optimierer optimiert oberflächlich gesehen nur den VIRTUELLEN Speicher-Aufbau. Erst der Speichermanager des Protected Mode OS selber hat den entscheidenden Zugriff auf die Verteilung und Anforderung der virtuellen Pages, eg. das Mapping auf physikalischen Speicher, unter Kontrolle. Wenn all dies aus Sicht der RAM Optimierer-Software alles nur virtuell ist, wie soll der RAM Optimierer dann die tatsächlichen Speicherverhältnisse abschätzen können ? Anders verdeutlicht: in einem System existieren 512Mb physikalischer Speicher, der vollkommen willkürlich mit zusätzlichem Auslagerungsspeicher, zu einem linearen aber vollständig durcheinandergewürfeltem VIRTUELLEM Speicher gemappt wird. Nur diesen Virtuellen Speicher sehen die normalen Anwendungen. Aus deren Sicht sehen sie also zB. 1Gb linearen Speicher, der aber in Wirklichkeit auf verschiedene physikalische Subsysteme gemappt wird.

Will man die Gesamtsituation wirklich verbesseren dann müsste man am OS rumdoktorn, zB. eben wie UNIX/LINUX + ELF Formate benutzen. Ob dies dann auch eine wirklicher Vorteil gegenüber dem Intel/Microsoft Weg ist sei dahingestellt.

Aus meiner Sicht besteht die Wirkungsweise des Optimierers darin die Sandkörner zwischen großen Felsblöcken zu beseitigen. Sogesehen ist es tatsächlich so das am Ende mehr Speicher zur Verfürgung steht, allerdings um 0.1% des Hauptspeichers zu defragmentieren muß man nicht erst 99% des Hauptspeichers auslagern. Davon abgesehen der meiste Speicherschwund entsteht in der Fragmentierung INNERHALB der Prozesseigenen Speicherverwaltung, zB. bei Delphi Anwedungen im Borland MM. Nun, aus Sicht des OS und des RAM Optimeirers liegen diese Fragmentierungen innerhalb großer Virtueller Pages. Nur diese virtuellen Pages können durch einen RAM Optimierer verschoben und berücksichtigt werden. Sogesehen werden die vielen Defragmentierungen der Prozessbezogenen Speicherverwaltung mit auf die Asulagerungsdatei ausgelagert. Beim erneuten Laden werden logischerweise diese Defragmentieren wieder in den Hauptspeicher kopiert. An der Gesamtsituation hat sich also rein garnichts verändert. Grundsätzlich kann also NIRGENDSWO im System irgendwelche ungenutzten Speicherbereiche freigegeben werden, da sonst die Prozesse abstützen würden, denn deren eigene MM's würde davon ja nichts mitbekommen.

Gruß Hagen


Alle Zeitangaben in WEZ +1. Es ist jetzt 05:37 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz