AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) Delphi Verhinden des Memory ausgelagert wird
Thema durchsuchen
Ansicht
Themen-Optionen

Verhinden des Memory ausgelagert wird

Ein Thema von gsh · begonnen am 11. Nov 2007 · letzter Beitrag vom 21. Nov 2007
Antwort Antwort
Seite 2 von 3     12 3      
Benutzerbild von gsh
gsh

Registriert seit: 24. Okt 2004
1.542 Beiträge
 
Delphi XE Architect
 
#11

Re: Verhinden des Memory ausgelagert wird

  Alt 11. Nov 2007, 21:31
ja des schaut schon besser aus aber:
Zitat:
Address Windowing Extensions (AWE) is a set of extensions that allows an application to quickly manipulate physical memory greater than 4GB. Certain data-intensive applications, such as database management systems and scientific and engineering software, need access to very large caches of data. In the case of very large data sets, restricting the cache to fit within an application's 2GB of user address space is a severe restriction. In these situations, the cache is too small to properly support the application.
der erste absatz sagt mir eigtlich schon des dieses AWE system eigentlich nur dafür da ist die 2GB grenze bei XP zu umgehen
Alex
"Sage nicht alles, was du weißt, aber wisse alles, was du sagst!" Matthias Claudius
"Wer sich über Kritik ärgert, gibt zu, daß er sie verdient hat." Tacitus
  Mit Zitat antworten Zitat
Uwe.F.

Registriert seit: 19. Apr 2005
56 Beiträge
 
Delphi 7 Enterprise
 
#12

Re: Verhinden des Memory ausgelagert wird

  Alt 11. Nov 2007, 21:34
Zitat von gsh:
kann ich auch irgendwie feststellen ob des dann auch wirklich im ram liegt? (also so zum testen ob des in meiner app funkt)
Getestet habe ich es nie. Ich musste Audiodaten von einer Karte holen. Wenn diese ausgelagert gewesen wären, hätte ich sicherlich Aussetzer gehabt. Hatte ich aber nie.

Zitat von gsh:
edit: aja und warum eigentlich Bytes+2?
Historische Gründe - kannst Du weglassen.

Beste Grüße,
Uwe
Uwe
  Mit Zitat antworten Zitat
Benutzerbild von gsh
gsh

Registriert seit: 24. Okt 2004
1.542 Beiträge
 
Delphi XE Architect
 
#13

Re: Verhinden des Memory ausgelagert wird

  Alt 11. Nov 2007, 21:36
Zitat von Uwe.F.:
Getestet habe ich es nie. Ich musste Audiodaten von einer Karte holen. Wenn diese ausgelagert gewesen wären, hätte ich sicherlich Aussetzer gehabt. Hatte ich aber nie.
naja nur weil es funktioniert heißt nicht des es immer funkt. es kann ja sein des diese funktion manchmal den memory in den ram ablegt manchmal aber auch in der auslagerungsdatei
Alex
"Sage nicht alles, was du weißt, aber wisse alles, was du sagst!" Matthias Claudius
"Wer sich über Kritik ärgert, gibt zu, daß er sie verdient hat." Tacitus
  Mit Zitat antworten Zitat
Dax
(Gast)

n/a Beiträge
 
#14

Re: Verhinden des Memory ausgelagert wird

  Alt 11. Nov 2007, 21:42
Mit GlobalAlloc/VirtualLock kannst du dem Speichermanager lediglich Tips geben, ob ein bestimmter Speicherbereich während der Ausführungszeit des Programms nicht ausgelagert werden darf, nicht hingegen, dass dieser Speicher immer im Ram zu halten ist. Das kannst du nur umgehen, indem du direkt in den Paging-Prozess von Windows eingreifst - mittels der AWE-Funktionen - und so direkt verhinderst, dass ein Bereich des physischen Speichers bis auf weiteres für überhaupt irgendwas anderes benutzt werden kann.

Das steht aber auch so in dem vom xaromz verlinkten Artikel
  Mit Zitat antworten Zitat
Benutzerbild von gsh
gsh

Registriert seit: 24. Okt 2004
1.542 Beiträge
 
Delphi XE Architect
 
#15

Re: Verhinden des Memory ausgelagert wird

  Alt 11. Nov 2007, 21:47
Zitat von Dax:
Mit GlobalAlloc/VirtualLock kannst du dem Speichermanager lediglich Tips geben, ob ein bestimmter Speicherbereich während der Ausführungszeit des Programms nicht ausgelagert werden darf, nicht hingegen, dass dieser Speicher immer im Ram zu halten ist. Das kannst du nur umgehen, indem du direkt in den Paging-Prozess von Windows eingreifst - mittels der AWE-Funktionen - und so direkt verhinderst, dass ein Bereich des physischen Speichers bis auf weiteres für überhaupt irgendwas anderes benutzt werden kann.

Das steht aber auch so in dem vom xaromz verlinkten Artikel
hmmm ja ok

und wie stell ich des am besten mit der AWE-Funktion an?

//Edit: hab des jetzt mal so getest
VirtualAlloc(P, 100*1024*1024, MEM_RESERVE or MEM_PHYSICAL, 0); aber des scheint nicht zu funktionieren (Laut Task-Manager)
Alex
"Sage nicht alles, was du weißt, aber wisse alles, was du sagst!" Matthias Claudius
"Wer sich über Kritik ärgert, gibt zu, daß er sie verdient hat." Tacitus
  Mit Zitat antworten Zitat
Uwe.F.

Registriert seit: 19. Apr 2005
56 Beiträge
 
Delphi 7 Enterprise
 
#16

Re: Verhinden des Memory ausgelagert wird

  Alt 11. Nov 2007, 22:10
Habe noch mal in die W32-Hilfe gesehen:

The GlobalLock function locks a global memory object and returns a pointer to the first byte of the object's memory block. The memory block associated with a locked memory object cannot be moved or discarded.

Wenn der Memoryblock nicht verschoben werden kann, wird er meines Erachtens auch nicht ausgelagert.
Meine Applikation funktioniert jedenfalls seit 10 Jahren ohne Ausfall (unter der Annahme, dass ausgelagerter Speicher nicht innerhalb 20 Millesekunden nachgeladen ist).

Beste Grüße,
Uwe
Uwe
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#17

Re: Verhinden des Memory ausgelagert wird

  Alt 11. Nov 2007, 22:21
Warum darf der Speicherbereich denn nicht ausgelagert werden? Mir ist bisher noch keine Situation untergekommen, wo das schlecht gewesen wäre.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.139 Beiträge
 
Delphi 12 Athens
 
#18

Re: Verhinden des Memory ausgelagert wird

  Alt 12. Nov 2007, 01:57
Zitat von Uwe.F.:
Wenn der Memoryblock nicht verschoben werden kann, wird er meines Erachtens auch nicht ausgelagert.
nicht korrekt, es kann nur im virtuellen Speicherraum der Anwenung weder verschoben noch freigegeben werden,
aber ausgelagert kann er dennoch werden.


Zitat von gsh:
//Edit: hab des jetzt mal so getest
VirtualAlloc(P, 100*1024*1024, MEM_RESERVE or MEM_PHYSICAL, 0); aber des scheint nicht zu funktionieren (Laut Task-Manager)
hast du dir mal im MSDN die Texte zu Managing AWE Memory durchgelesen?

damit reservierst du nur 'ne Stelle im Virtuellen Speicherraum der Anwendung
den physischen Speicher mußt du extra resevieren und dann auch noch an dieser Stelle einblenden.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
Benutzerbild von gsh
gsh

Registriert seit: 24. Okt 2004
1.542 Beiträge
 
Delphi XE Architect
 
#19

Re: Verhinden des Memory ausgelagert wird

  Alt 12. Nov 2007, 12:26
Zitat von himitsu:
hast du dir mal im MSDN die Texte zu Managing AWE Memory durchgelesen?

damit reservierst du nur 'ne Stelle im Virtuellen Speicherraum der Anwendung
den physischen Speicher mußt du extra resevieren und dann auch noch an dieser Stelle einblenden.
ja ich hab zumindest versucht alles zu verstehen aber mein englisch ist nicht soooo gut


versteh ich nicht ... gebe ich nicht mit MEM_PHYSICAL an des ich pysikalischen Speicher haben will
Alex
"Sage nicht alles, was du weißt, aber wisse alles, was du sagst!" Matthias Claudius
"Wer sich über Kritik ärgert, gibt zu, daß er sie verdient hat." Tacitus
  Mit Zitat antworten Zitat
Benutzerbild von gsh
gsh

Registriert seit: 24. Okt 2004
1.542 Beiträge
 
Delphi XE Architect
 
#20

Re: Verhinden des Memory ausgelagert wird

  Alt 14. Nov 2007, 18:12
Alex
"Sage nicht alles, was du weißt, aber wisse alles, was du sagst!" Matthias Claudius
"Wer sich über Kritik ärgert, gibt zu, daß er sie verdient hat." Tacitus
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 3     12 3      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:21 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