![]() |
Zu wenig Arbeitsspeicher
Hallo DP'ler,
mein Programm bringt (immer wieder mal) den Fehler : zu wenig Arbeitsspeicher. (Ich hab' Euch damit auch schon genervt.) Ein Kollege hat mir gesagt, ich müßte das Programm mit anderen Parametern kompilieren, da diese Rechner alle 4 G Arbeitsspeicher haben und in der boot.ini der Parameter "/3" gesetzt ist. :gruebel: Könnt Ihr mir sagen - wo und was ich ändern muß - damit diese ..... Rechner mein Programm anstandslos laufen lassen. Mit FastMM hab' ich gerade mehrere Test gemacht. Es wurden ein paar Speicherlecks angemotzt und die werde ich jetzt versuchen zu beseitigen. Vielen Dank und viele Grüße Ines P.S. Delphi2009 und Win XP |
Re: Zu wenig Arbeitsspeicher
Die Frage ist erstmal:
Muß dein Programm überhaupt soviel Speicher verbrauchen? Oder wäre es nicht besser den Speicherbedarf zu senken. PS: Wenn du ein Speicherleck hast, welches dafür sorgt, dann würdest du dieses Problem, mit "mehr" Speicher, nur etwas hinauszögern, aber nicht beheben. |
Re: Zu wenig Arbeitsspeicher
Fast jedes Programm, dass 2GB an RAM verbrät, hat entweder haufenweise Lecks (bzw. reichen einige wenige die sich in Schleifchen aufsummieren auch), oder massive Designprobleme. Mir würde ehrlich gesagt nur sehr wenig einfallen, bei dem man heutzutage wirklich so viel RAM wirklich braucht.
Ich denke mit der Beseitigung der von FastMM monierten Lecks bist du zunächst gut beraten. Wenn es dann noch Probleme gibt, kann man ja weiter schauen. |
Re: Zu wenig Arbeitsspeicher
Hallo,
ich glaube nicht, daß mein Programm soviel Speicher verbraucht. Es läuft allerdings gleichzeitig mit 5 anderen (zum Teil sehr speicherintensiven Programmen). Und diese Programme müssen alle gleichzeitig laufen! Mein Programm läuft auf "normalen" PC (Arbeitsspeicher <= 2 G) - auch zusammen mit anderen Programmen völlig problemlos. Ich glaube (kann es aber nicht beweisen) daß es nicht an meinem Programm sondern an dem Philips-Programm liegt. Grüße Ines |
Re: Zu wenig Arbeitsspeicher
Wenn es an den anderen Programmen liegt, dann würde es auch nichts ändern, wenn du in deinem Programm die 3GB-Option aktivierst, da dieses nur ein Maximum an virtuellem Speicherbereich innerhalb deiner Anwenung erhöht,
aber Wenn windows meckert, dann geht ihm der physische Speicher aus. |
Re: Zu wenig Arbeitsspeicher
Zitat:
Was meinst Du mit - dann geht im der physische Speicher aus? Die Größe der Auslagerungsdatei darf Windows selbst festlegen und auf der Platte ist jede Menge Speicherplatz frei. Ines |
Re: Zu wenig Arbeitsspeicher
Dein Programm kann diesen Bereich nur innerhalb seines virtuellen Speichers nicht nutzen.
Wo der virtuelle Speicher aber im physischen Speicher abgelegt wird, das entscheidet Windows und da könnte bei 8 GB RAM der Speicher deines Programms auch teilweise in den höheren physischen Speicherbereichen liegen. Virtuell ist der Speicher innerhalb deines Programmes zwar fest, aber physisch können einzelne "virtuelle" Speicherbereiche sonstwo im System abgelegt und verschoben werden. (RAM + Auslagerungsdatei) |
Re: Zu wenig Arbeitsspeicher
Zitat:
Ansonsten: {$SetPeFlags $20} im der DPR setzen. |
Re: Zu wenig Arbeitsspeicher
Zitat:
und wenn das Programm eh nicht soviel Speicher vergraicht, dann ist es auch garnicht nötig. @Ines: Laß dir von deinem Kollegen mal sagen, wieviel Speicher diese Programme belegen (laut Taskmanager), wenn es wieder zu dieser Fehlermeldung kommt. |
Re: Zu wenig Arbeitsspeicher
Wenn dein Programm unter 2GB bleibt, dann hilft dir die >2GB Option überhaupt nicht weiter. Aus Sicht deines Programmes ist der Speicher immer an der selben Stelle, und wird immer ab der selben Adresse benutzt. Wo Windows das tatsächlich im RAM physikalisch hinterlegt ist für dich (dein Programm) völlig unerheblich.
Nur, und nur dann wenn dein eigenes Programm mehr als 2GB selbst belegen muss kann diese Option weiter helfen, weil dann auch virtuell mehr als ursprünglich vorgesehen adressiert werden muss. Wenn es aber um die Summe der laufenden Applikationen geht, tut das rein garnüscht. Dieses out of memory kenne ich übrigens auch noch im Zusammenhang mit GDI-Ressourcen, die unabhähngig vom Speicherausbau auch nur begrenzt vom OS bereit gestellt werden. (Oder hieß es dann wirklich "out of ressources? :gruebel: Egal, go:) Tritt das Problem also irgendwo auf, wo du was zeichnest, ein Bitmap erstellst, eine Region oder irgend etwas in diese Richtung, dann kann auch dort der Hund begraben liegen. Aber auch hier gibt's ein ähnliches Problem: Wenn ein Fremdprogramm verschwenderisch mit GDI Objekten umgeht, kannst du selber da herzlich wenig dran machen. Dein eigenes Programm sollte nur darauf achten, wenn überhaupt von Hand mit GDI Objekten gearbeitet wird, diese peinlichst zuverlässig wieder frei zu geben - und zwar wirklich sobald sie nicht mehr, bzw. für längere Zeit nicht gebraucht werden. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:14 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