Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   PE-Flag IMAGE_FILE_NET_RUN_FROM_SWAP und langsamer Zugriff (https://www.delphipraxis.net/211635-pe-flag-image_file_net_run_from_swap-und-langsamer-zugriff.html)

reaktor 14. Okt 2022 13:26

PE-Flag IMAGE_FILE_NET_RUN_FROM_SWAP und langsamer Zugriff
 
Hallo,
unser Programm wird von einem Netzwerk-Share geladen. Haben mehrere DLLs und nat. die BPLs. Bei einem Kunden geht es an 2 Rechnern an manchen Stellen im Programm extrem langsam. Dieses Phänomen tritt nur dort auf.

Wenn wir das PE-Flag IMAGE_FILE_NET_RUN_FROM_SWAP setzen, geht es "normal schnell". Normalerweise sollte das Laden jedoch länger dauern, weil ja erst alles rüberkopiert und in die Auslagerungsdatei gestellt wird. Das PE-Flag wollen wir nicht im Standard aktivieren, weil es ja dann für alle anderen länger dauert.

Hat irgendjemand eine Idee was die Ursache sein könnte oder irgendeinen Ansatzpunkt wo man nachsehen könnte?

himitsu 14. Okt 2022 13:49

AW: PE-Flag IMAGE_FILE_NET_RUN_FROM_SWAP und langsamer Zugriff
 
Zitat:

Normalerweise sollte das Laden jedoch länger dauern, weil ja erst alles rüberkopiert und in die Auslagerungsdatei gestellt wird.
Nein.

Rüberkopiert muß es so oder so werden.
* OHNE wird es vom Share in den RAM geladen
* auch MIT wird es vom Share in den RAM geladen

aber gibt es zu wenig speicher, dann wird RAM ausgelagert
* OHNE wird es einfach freigegeben und beim nächsten Zugriff (PageFault) erneut vom Share geholt
. (genauso wie normal auch, bei EXE/DLL/BPL auf der Festplatte, da wird es auch von dort geholt)
* MIT wird es in die Auslagerungsdatei entladen und dann von dort zurückgeholt

Damit bei IMAGE_FILE_NET_RUN_FROM_SWAP, wenn der Share nicht mehr erreichbar ist, es dennoch verfügbar bleibt (oder auch wenn Share langsam ist, damit es von lokal schneller geht)
bzw. bei IMAGE_FILE_REMOVABLE_RUN_FROM_SWAP, wenn USBStick oder externe Festplatte abgezogen wurden.

Blöd an IMAGE_FILE_NET_RUN_FROM_SWAP und IMAGE_FILE_REMOVABLE_RUN_FROM_SWAPist, dass es nicht an der EXE hängt und für alle DLLs verwendet wird,
sondern man es für jede einzelne DLL/BPL setzen soll ... besonders unpraktisch, bei Fremdcode (vorallem wenn auch noch signiert).



Was wir mitbekommen haben, was ihr also besser niemals machen solltet:
Die EXE/DLL im Rootverzeichnis eines Shares ablegen, sondern immer in einem Unterverzeichnis ... Windows ist doof und hat da eine teilweise sehr extrem bremsende Eigenart, wenn die $IPC-Freigabe fehlt oder nicht richtig arbeitet.

Wir haben an die 80-100 EXE/DLL/BPL und dann noch die Millionen BPLs von DevExpress und Co.
Ist besonders geil, wenn beim Laden Windows pro Datei 15 Sekunden braucht. (der Timeout beim Zugriff auf diesen $IPC)

Papaschlumpf73 14. Okt 2022 15:04

AW: PE-Flag IMAGE_FILE_NET_RUN_FROM_SWAP und langsamer Zugriff
 
[QUOTE=himitsu;1513301]
Zitat:

Windows ist doof und hat...
Und nicht nur an dieser Stelle. Daher nennen wir es seit Jahren Windoof :-)

reaktor 27. Okt 2022 09:37

AW: PE-Flag IMAGE_FILE_NET_RUN_FROM_SWAP und langsamer Zugriff
 
Danke für die Antwort.
Hat ein wenig gedauert, bis wir uns das live beim Kunden ansehen konnten. Mit deaktivierten Flags, wo es laut Kunden ja langsam geht, hat es sich nicht konsistent verhalten. Manchmal ging es tatsächlich sehr langsam, dann aber wieder normal schnell. Hat also nicht direkt was mit den Flags zu tun, denken wir. Eher mit dem Antivirenprogramm, Hardwarefehler oder Auslastungsspitzen. Vermutlich war auch die Aussage vom Kunden nicht 100% korrekt.

Danke auf jeden Fall!


Alle Zeitangaben in WEZ +1. Es ist jetzt 16:00 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