Delphi-PRAXiS
Seite 3 von 3     123   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi Verhinden des Memory ausgelagert wird (https://www.delphipraxis.net/103173-verhinden-des-memory-ausgelagert-wird.html)

Uwe.F. 14. Nov 2007 19:10

Re: Verhinden des Memory ausgelagert wird
 
Und ... was bedeutet

http://www.delphipraxis.net/images/smiles/duck.gif

das?

gsh 14. Nov 2007 19:19

Re: Verhinden des Memory ausgelagert wird
 
Das war ein push von mir

himitsu 19. Nov 2007 08:28

Re: Verhinden des Memory ausgelagert wird
 
also, ich hab mir mal den Democode aus'm PSDK nach Delphi übersetzt
(mein Englisch ist übrigens auch sehr bescheiden :oops: )
und es funktioniert wunderbar (jedenfalls wenn man noch eine "normale" Speicherresservierung als Reserve mit einbaut),
aaaaber dieses ist in einem normalem Programm sogut wie unnütz,
denn wie im MSDN/PSDK steht, muß dieses auch noch im Windows aktivert sein
und ich denk mal bei 99% der PCs ist dieses nicht der Fall.

Zitat:

An application must have the Lock Pages in Memory privilege to use AWE.
gut, die kann sich das Programm "leicht" besorgen,
Zitat:

To obtain this privilege, an administrator must add Lock Pages in Memory to the user's User Rights Assignments.
aber hier wird es schwerer...


allerding weiß ich jetzt nicht obWindows den speicher nicht doch auslagern kann
und vorallem was passiert beim Ruhezustand/Hypernate, weil da muß windows doch auslagern, oder es geht was nicht :?

hathor 19. Nov 2007 09:11

Re: Verhinden des Memory ausgelagert wird
 
Es gibt auch noch die Möglichkeit, eine RAMDISK einzurichten.(MS-RAMDRIVE)
Maximale Grösse: 32 MB.

A ramdisk can perfectly be used to store :

- web content of web servers.
- temporary index files and tables of database servers ( MS-SQL-Server , MySQL , ...).
- temporary files ( TEMP and TMP environment variable ) and "Temporary Internet Files".
- the scratch disk for Adobe (R) Photoshop (R).
- games and installed programs (1). The startup times of programs may decrease drastically !
- audio and video capture / editing.
- creation and playback of slide shows.
- data that has to be written to CD , to prevent underrun during the burn process.
- as storage of the "ReadyBoost" cache on Vista.
- all kinds of data that may be lost ( or MUST be lost for security reasons ) at shutdown.

http://support.microsoft.com/kb/834886/de
http://www.winfaq.de/faq_html/Conten...?h=tip1260.htm

http://www.ramdisk.tk/
RAMDisk , depending on the RAM memory size that the OS supports , to up to 64 GB.

gsh 19. Nov 2007 16:03

Re: Verhinden des Memory ausgelagert wird
 
ah danke des mit der Ramdisk werd ich mir mal anschauen

himitsu 21. Nov 2007 12:19

Re: Verhinden des Memory ausgelagert wird
 
Zitat:

Zitat von gsh
der erste absatz sagt mir eigtlich schon des dieses AWE system eigentlich nur dafür da ist die 2GB grenze bei XP zu umgehen

Ja, es ist unter anderem dafür entwickelt worden, aber man kann es auch für Angelegenheiten wie diese hier nutzen.

Aber mal eine Frage, wofür genau benötigst du dieses? (für was und vorallem wieviel)

gsh 21. Nov 2007 17:29

Re: Verhinden des Memory ausgelagert wird
 
Zitat:

Zitat von gsh
ah danke des mit der Ramdisk werd ich mir mal anschauen

also ich hab mir des mal angeschaut ist ganz cool die ramdisk aber für mich total ungeignet da ich keinen eigenen Treiber mitführen möchte (Programm sollte von USB-Stick startbar sein)


Zitat:

Zitat von himitsu
Ja, es ist unter anderem dafür entwickelt worden, aber man kann es auch für Angelegenheiten wie diese hier nutzen.
Aber mal eine Frage, wofür genau benötigst du dieses? (für was und vorallem wieviel)

Naja es soll halt ein schneller Pufferspeicher sein der dann auf die Festplatte geschreiben wird und wenn der Buffer ausgelagert wird dann muss die festplatte 3 mal so viel arbeiten als wenn er vom ram kopiert wird.

Nicht viel ... 5 MB vllt. des muss ich erst testen was am besten ist

himitsu 21. Nov 2007 18:40

Re: Verhinden des Memory ausgelagert wird
 
Zitat:

Zitat von gsh
Naja es soll halt ein schneller Pufferspeicher sein der dann auf die Festplatte geschreiben wird und wenn der Buffer ausgelagert wird dann muss die festplatte 3 mal so viel arbeiten als wenn er vom ram kopiert wird.

Normal ist gut ... was für Daten sind es denn nun, die sooo wichtig sind, daß sie nichtmal einen Buchteil einer (Milli)Sekunde warten können.

Das Problem ist halt, daß erstmal nicht jeder gleich damit arbeitet (drum hab ich auch den den übersetzten Code nicht gepostet)
Stell dir mal vor jeder fängt plötzlich damit an ... und ganz schnell wäre Windows am Abstürzen, weil ihm der Speicher ausgeht.
dieser Rechner hier hat z.B. keine Auslagerungsdatei (wegen Problemen mit einer zulangsamen Festplatte) und nur 500 MB RAM, also alles nur physischen Speicher und du kannst mir glauben, ich hab schon oft erlebt wie hier alles am verreckn ist, wenn der freie RAM ausgeht

schneller Puffer: wenn du oft genug und/oder mit nicht all zu großen Pausen auf deinen Speicher zugreifst, dann lagert den Windows auch (wenn möglich) nicht aus (dieser bleibt also auch ohne das zu tun im RAM).

Und was das AWE betrifft: wie gesagt, dieses muß erst vom Admin im Windows aktiviert werden (standardmäßig ist es auf allen Windowssystemen abgeschaltet)
heißt: im Gruppenmanager das häckchen setzen, Rechner neu starten und erst dann haben Programme die Möglichkeit dieses zu nutzen.

gsh 21. Nov 2007 19:07

Re: Verhinden des Memory ausgelagert wird
 
Naja ich werds doch so lassen und darauf hoffen des windows es im speicher lässt.

Jaja und des Prob ist nicht die Zeit sondern:

Wenn der Buffer ausgelagert wird
Daten -> Buffer (wird auf festplatte ausgelagert) =
schreibzugriff auf festplatte um buffer auszulagern
Buffer -> Auf Festplatte kopieren (in die richtige datei)
lesezugriff um ausgelagerten buffer zu lesen
schreibzugriff um buffer in datei zu schreiben


Wenn der Buffer NICHT ausgelagert wird
Daten -> Buffer (steht im Speicher) =
buffer bleibt im ram
Buffer -> Auf Festplatte kopieren (in die richtige datei)
lesezugriff vom ram um buffer auszulesen (geht viel schneller da die fesplatte sowieso genug zu tun hat)
schreibzugriff auf festplatte um buffer in datei zu schreiben


Es geht darum bei großen und vielen Dateien die Festplatten performance besser zu nutzen

himitsu 21. Nov 2007 19:32

Re: Verhinden des Memory ausgelagert wird
 
Zitat:

Zitat von gsh
Es geht darum bei großen und vielen Dateien die Festplatten performance besser zu nutzen

genau dafür versuch ich es auch zu nutzen (Thema FileSplitter), allerdings wird da der Speicherblock nur "kurz" benötigt.
Außerdem prüfe ich vorher, ob es das System "zu sehr" beeinträchtigen könnte (genug freier physikalischer Speicher) und ich hab mir eine alternative virtuelle Ausweichvariante mit integriert.

und auch wenn der Code soweit funktioniert (Programm läuft einwandfrei) bin ich dennoch am Testen ob es nicht irgendwelche Nachteile für andere Programme gibt und wie ich die Grenzwerte am Besten festlege.

mein FileSpliter ist ja jetzt schon nicht grad nett zum PC und läßt die Platte glühen :oops:
abgesehn davon wird das AWE bei meinem Program eh sehr selten genutzt werden, da es schließlich fast immer deaktivert sein wird -.-''
(ich hab's eigentlich auch nur aus Spieltrieb eingebaut ... jedenfalls hätte ich mir im Normalfall nicht die Arbeit gemacht um erst rauszufinden wie es geht)


Alle Zeitangaben in WEZ +1. Es ist jetzt 15:24 Uhr.
Seite 3 von 3     123   

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