![]() |
Re: Verhinden des Memory ausgelagert wird
ja des schaut schon besser aus aber:
Zitat:
|
Re: Verhinden des Memory ausgelagert wird
Zitat:
Zitat:
Beste Grüße, Uwe |
Re: Verhinden des Memory ausgelagert wird
Zitat:
|
Re: Verhinden des Memory ausgelagert wird
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 ;) |
Re: Verhinden des Memory ausgelagert wird
Zitat:
und wie stell ich des am besten mit der AWE-Funktion an? //Edit: hab des jetzt mal so getest
Delphi-Quellcode:
aber des scheint nicht zu funktionieren (Laut Task-Manager)
VirtualAlloc(P, 100*1024*1024, MEM_RESERVE or MEM_PHYSICAL, 0);
|
Re: Verhinden des Memory ausgelagert wird
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 |
Re: Verhinden des Memory ausgelagert wird
Warum darf der Speicherbereich denn nicht ausgelagert werden? Mir ist bisher noch keine Situation untergekommen, wo das schlecht gewesen wäre.
|
Re: Verhinden des Memory ausgelagert wird
Zitat:
aber ausgelagert kann er dennoch werden. Zitat:
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. |
Re: Verhinden des Memory ausgelagert wird
Zitat:
versteh ich nicht ... gebe ich nicht mit MEM_PHYSICAL an des ich pysikalischen Speicher haben will :gruebel: |
Re: Verhinden des Memory ausgelagert wird
:duck:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:28 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