AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Zu wenig Arbeitsspeicher

Offene Frage von "TM6"
Ein Thema von TM6 · begonnen am 14. Dez 2004 · letzter Beitrag vom 14. Dez 2004
Antwort Antwort
TM6

Registriert seit: 14. Dez 2004
46 Beiträge
 
Delphi 12 Athens
 
#1

Zu wenig Arbeitsspeicher

  Alt 14. Dez 2004, 09:27
Beim Compilieren eines Projektes erhalte ich die Fehler-Meldung 'Zu wenig Arbeitsspeicher' im Erzeugen-Fenster. Die Compilierung wird abgebrochen und Delphi ist danach unbrauchbar - Absturz bei Zugriff auf NTDLL.DLL. Danach hilft nur noch ein Neustart.
Das Ganze passiert mir fast täglich beim ersten Start des Rechners. Nach einem Neustart gibt es im allgemeinen keine Probleme. Ich nutze Win2k SP4 und Delphi 7 Pro. Ähnliche Probleme konnte ich aber auch unter XP Pro SP2 feststellen.

Die Rechner haben 1GB Hauptspeicher. Der Taskmanager meldet, dass die Speichernutzung bei ca. 330 MB liegt. Es sollte also genug Speicher vorhanden sein.

Das Problem taucht nur unter Delphi auf. Alle anderen Programme funktionieren augenscheinlich problemlos.

Das Projekt hat ca. 280000 Zeilen und der Abbruch ist nicht immer an der gleichen Stelle.

Hat jemand eine Ahnung, woran das liegen kann?
  Mit Zitat antworten Zitat
Benutzerbild von Orbmu2k
Orbmu2k

Registriert seit: 29. Nov 2004
Ort: Erfurt
254 Beiträge
 
Turbo Delphi für Win32
 
#2

Re: Zu wenig Arbeitsspeicher

  Alt 14. Dez 2004, 10:06
Wenn du in deinem Project die BDE verwendest ist liegt es daran das du die Anwendung nicht sauber beendest sondern von der IDE aus zurücksetzt ... das machst du dann ein paar Mal und dann kommen diese Fehler ...
  Mit Zitat antworten Zitat
shmia

Registriert seit: 2. Mär 2004
5.508 Beiträge
 
Delphi 5 Professional
 
#3

Re: Zu wenig Arbeitsspeicher

  Alt 14. Dez 2004, 10:35
Du könntest unbenützte Units aus den Uses-Klauseln entfernen.
Dies entlastet den Compiler beim Aufbau seiner diversen Symboltabellen.
Dazu gibt es ein Freeware Tool namens Icarus: http://www.peganza.com/download.htm
Du brauchst ca. 1 Stunde für Installation & Einarbeitung + ca. 3 Minuten für jede Unit.
Andreas
  Mit Zitat antworten Zitat
TM6

Registriert seit: 14. Dez 2004
46 Beiträge
 
Delphi 12 Athens
 
#4

Re: Zu wenig Arbeitsspeicher

  Alt 14. Dez 2004, 12:41
Die BDE wird nicht verwendet.

Auch das Icarus-Tool hat nichts Neues gebracht. Alle Units werden verwendet.

Zum Aufbau der Symboltabellen:
Ist es allgemein für den Delphi-Compiler günstiger, wenn man viele Units benutzt oder eher weniger, die aber entsprechend größer sind. Oder ist das vollkommen egal.
  Mit Zitat antworten Zitat
shmia

Registriert seit: 2. Mär 2004
5.508 Beiträge
 
Delphi 5 Professional
 
#5

Re: Zu wenig Arbeitsspeicher

  Alt 14. Dez 2004, 13:09
Zitat von TM6:
Auch das Icarus-Tool hat nichts Neues gebracht. Alle Units werden verwendet.
Glaub ich nicht. Du hast den Report nicht genau analysiert.
Beispiel:
wenn man ein neues Datenmodul erzeugt, sieht das ungefähr so aus:
Delphi-Quellcode:
unit Unit2;
interface
uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs;
type
  TDataModule2 = class(TDataModule)
  private
Schau man sich die Uses-Klausel an, sieht man, dass die Unit Graphics und Controls in einem Datenmodul
nicht benötigt werden. Also rauslöschen. Auch Messages wird man in 99% aller Fälle nicht brauchen.
Icarus markiert nicht benötigte Units mit einem Pfeil ==>:
Code:
  ==> Controls unnecessary (has initialization)
      Forms in interface (has initialization)
  ==> Dialogs unnecessary (has initialization)
Zitat von TM6:
Zum Aufbau der Symboltabellen:
Ist es allgemein für den Delphi-Compiler günstiger, wenn man viele Units benutzt oder eher weniger, die aber entsprechend größer sind. Oder ist das vollkommen egal.
Es kommt drauf an, würd ich mal sagen.
Man sollte die Units so designen, wie es für die Programmierung am günstigsten ist und
keine Rücksicht auf den Compiler nehmen.
Dann sollte man nur die Units in die Uses-Klausel reintun, die auch wirklich zum kompilieren benötigt
werden.
Andreas
  Mit Zitat antworten Zitat
TM6

Registriert seit: 14. Dez 2004
46 Beiträge
 
Delphi 12 Athens
 
#6

Re: Zu wenig Arbeitsspeicher

  Alt 14. Dez 2004, 14:09
Zitat von shmia:
Glaub ich nicht. Du hast den Report nicht genau analysiert.

Recht hast Du! Ich habe mir nur die ersten Zeilen angeschaut und da sah alles okay aus.
Für neue Datenmodule nutze ich eine fast leere 'Beispiel-Unit', in der nur die Units unter uses stehen, die ich eh zu 99% benötige. Das geht schneller. Und daher ist ein guter Teil, der bislang 372 units sauber. Aber es gibt noch eine Menge Altlasten.

Danke für die Hilfe. Hoffentlich bringt das entrümpeln etwas mit dem Hauptthema.
  Mit Zitat antworten Zitat
TM6

Registriert seit: 14. Dez 2004
46 Beiträge
 
Delphi 12 Athens
 
#7

Re: Zu wenig Arbeitsspeicher

  Alt 14. Dez 2004, 15:00
Icarus meldet, dass man in den Forms z.Bsp classes und Graphics in den implementation-Teil verschieben kann. Delphi weigert sich da aber standhaft. Ist das ein Bug in Icarus oder gibt es da einen Trick, Delphi zu überreden?
  Mit Zitat antworten Zitat
shmia

Registriert seit: 2. Mär 2004
5.508 Beiträge
 
Delphi 5 Professional
 
#8

Re: Zu wenig Arbeitsspeicher

  Alt 14. Dez 2004, 15:18
Zitat von TM6:
Icarus meldet, dass man in den Forms z.Bsp classes und Graphics in den implementation-Teil verschieben kann. Delphi weigert sich da aber standhaft. Ist das ein Bug in Icarus oder gibt es da einen Trick, Delphi zu überreden?
Ich denke, das ist ein Bug, ähm sagen wir mal Schwachpunkt von Icarus.
Könnte allerdings auch ein Problem der Delphi IDE sein.
Man müsste die PAS Datei mit dem Notepad editieren und mit dem Delphi Kommandozeilen Compiler übersetzen. Wenn es keine Compilerfehler gibt, liegt das Problem in der IDE.
Na ja, aber zuviel Zeit sollte man darin nicht investieren.
Andreas
  Mit Zitat antworten Zitat
Antwort Antwort


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 18: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