AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Die Delphi-IDE Bei Windows 64 Bit kompilieren kommt Fehler: F2046 Zu wenig Arbeitsspeicher
Thema durchsuchen
Ansicht
Themen-Optionen

Bei Windows 64 Bit kompilieren kommt Fehler: F2046 Zu wenig Arbeitsspeicher

Ein Thema von juergen · begonnen am 3. Jun 2021 · letzter Beitrag vom 5. Jun 2021
Antwort Antwort
Seite 1 von 2  1 2      
Benutzerbild von juergen
juergen

Registriert seit: 10. Jan 2005
Ort: Bönen
1.174 Beiträge
 
Delphi 11 Alexandria
 
#1

Bei Windows 64 Bit kompilieren kommt Fehler: F2046 Zu wenig Arbeitsspeicher

  Alt 3. Jun 2021, 15:25
Hallo zusammen,

mit meiner Delphi 10.3.1 Version kamen in der Vergangenheit bei einem größeren Projekt nach der Umstellung von 32 Bit Windows auf 64 Bit Windows *beim ersten kompilieren* die o.g. Fehlermeldung.
Nach Neustart von Delphi hattes es dann aber immer funktioniert.
Arbeitsspeicher habe ich genug (40GB).

Als Windows 32 Bit lässt sich das Projekt immer kompilieren.
Das Projekt kompiliert ca. 2,45 Mio Zeilen. Das kommt daher, weil ich u.a. DevExpress Ribbonbar und dxRichEdit nutze. Meine eigenen Codezeilen liegen bei knapp unter 30.000.
Mit jeder neuen Version von DevExpress kommen immer mehr Codezeilen hinzu. Und seit der Version 20.2.8 lässt sich mein Projekt nun unter Delphi 10.3.1 als 64 Bit Windows gar nicht mehr kompilieren.
Es erscheint (auch nach Neustart) immer o.g. Fehlermeldung.

Unter Uses stehen nur Units, die auch benötigt werden.
Zum Ende des Kompilierens steigt der Arbeitsspeicher von Delphi von ca. 1 GB schlagartig auf 1,8 GB und dann kommt die Fehlermeldung.

Weiß jemand ob sich mit den neueren Delphi Versionen in dieser Richtung etwas verbessert hat?
Aber Achtung: Das neue LSP kann ich in der momentanen Version leider *nicht* nutzen! Hat noch zu viele Fehler. Das lässt sich momentan wohl eher nur in kleineren Projekten und ohne DevExpress nutzen.
Obwohl: Zum kompilieren könnte man vorher vermutl. auf das LSP umstellen und die IDE damit um einiges arbeitsspeichermäßig entlasten, oder?


Vielen Dank schon mal vorab!
Miniaturansicht angehängter Grafiken
fehlermeldung.jpg  
Jürgen
Indes sie forschten, röntgten, filmten, funkten, entstand von selbst die köstlichste Erfindung: der Umweg als die kürzeste Verbindung zwischen zwei Punkten. (Erich Kästner)
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke
Online

Registriert seit: 10. Jun 2003
Ort: Berlin
9.589 Beiträge
 
Delphi 11 Alexandria
 
#2

AW: Bei Windows 64 Bit kompilieren kommt Fehler: F2046 Zu wenig Arbeitsspeicher

  Alt 3. Jun 2021, 16:15
Die Fremdkomponenten direkt im Projekt mit zu kompilieren macht keinen Sinn. Binde diese doch einfach in kompilierter Form ein, dann hast du bei der Projektgröße keinerlei Probleme in der Richtung mehr.

Wir haben sogar die eigenen Units und Komponenten, die zwischen mehreren Projekten geteilt werden, herausgezogen und kompilieren diese separat.
Sebastian Jänicke
Alle eigenen Projekte sind eingestellt, ebenso meine Homepage, Downloadlinks usw. im Forum bleiben aktiv!
  Mit Zitat antworten Zitat
Benutzerbild von juergen
juergen

Registriert seit: 10. Jan 2005
Ort: Bönen
1.174 Beiträge
 
Delphi 11 Alexandria
 
#3

AW: Bei Windows 64 Bit kompilieren kommt Fehler: F2046 Zu wenig Arbeitsspeicher

  Alt 3. Jun 2021, 16:27
Das hört sich interessant an. Kannst du mir ganz grob beschreiben wie das geht?

Vielen Dank!
Jürgen
Indes sie forschten, röntgten, filmten, funkten, entstand von selbst die köstlichste Erfindung: der Umweg als die kürzeste Verbindung zwischen zwei Punkten. (Erich Kästner)
  Mit Zitat antworten Zitat
Benutzerbild von juergen
juergen

Registriert seit: 10. Jan 2005
Ort: Bönen
1.174 Beiträge
 
Delphi 11 Alexandria
 
#4

AW: Bei Windows 64 Bit kompilieren kommt Fehler: F2046 Zu wenig Arbeitsspeicher

  Alt 3. Jun 2021, 17:08
Ich glaube ich weiß was du meintest. Man kann die DevExpress-Sachen in eine Dll gießen und dann entsprechend laden. Das schau ich mir jetzt mal näher an.
Jürgen
Indes sie forschten, röntgten, filmten, funkten, entstand von selbst die köstlichste Erfindung: der Umweg als die kürzeste Verbindung zwischen zwei Punkten. (Erich Kästner)
  Mit Zitat antworten Zitat
TurboMagic

Registriert seit: 28. Feb 2016
Ort: Nordost Baden-Württemberg
2.942 Beiträge
 
Delphi 12 Athens
 
#5

AW: Bei Windows 64 Bit kompilieren kommt Fehler: F2046 Zu wenig Arbeitsspeicher

  Alt 3. Jun 2021, 17:37
Das mkit der DLL ist glaube ich nicht, was er meinte...
Wenn man nicht auch die Quelltextpfade in den Optionen angibt, sondern nur
den Bibliothekspofad oder so, dann wurden diese devexpress Sachen 1x compiliert und
wenn dein Projekt comiliert wird greift Delphi immer auf die DCUs davon zu, erstellt diese
aber nicht jedesmal auch neu.
  Mit Zitat antworten Zitat
Benutzerbild von juergen
juergen

Registriert seit: 10. Jan 2005
Ort: Bönen
1.174 Beiträge
 
Delphi 11 Alexandria
 
#6

AW: Bei Windows 64 Bit kompilieren kommt Fehler: F2046 Zu wenig Arbeitsspeicher

  Alt 4. Jun 2021, 22:01
Hallo zusammen,
ich weiß nicht wonach ich suchen muss.
Wie funktioniert es, dass ich die DevExpress-Sachen vorkompiliere, so dass mein Projekt die ganzen DevExpress-Sachen nicht jedes Mal mit kompilieren muss.

Vielen Dank!
Jürgen
Indes sie forschten, röntgten, filmten, funkten, entstand von selbst die köstlichste Erfindung: der Umweg als die kürzeste Verbindung zwischen zwei Punkten. (Erich Kästner)
  Mit Zitat antworten Zitat
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.276 Beiträge
 
Delphi 10.4 Sydney
 
#7

AW: Bei Windows 64 Bit kompilieren kommt Fehler: F2046 Zu wenig Arbeitsspeicher

  Alt 4. Jun 2021, 22:19
Hallo,
indem du den Pfad mit den Pas-Dateien umbenennst,
oder die Pas-Dateien so verschiebst, dass Delphi sie nicht findet.
Heiko
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke
Online

Registriert seit: 10. Jun 2003
Ort: Berlin
9.589 Beiträge
 
Delphi 11 Alexandria
 
#8

AW: Bei Windows 64 Bit kompilieren kommt Fehler: F2046 Zu wenig Arbeitsspeicher

  Alt 5. Jun 2021, 12:39
Wenn du die DevExpress Packages kompilierst, werden die .dcu Dateien im entsprechenden Ausgabeverzeichnis (in den Projektoptionen des Packages definiert) abgelegt. Nur dieses Verzeichnis muss in den Bibliothekspfad, nicht das, in dem die Quelltexte (.pas) liegen.
Sebastian Jänicke
Alle eigenen Projekte sind eingestellt, ebenso meine Homepage, Downloadlinks usw. im Forum bleiben aktiv!
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu
Online

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

AW: Bei Windows 64 Bit kompilieren kommt Fehler: F2046 Zu wenig Arbeitsspeicher

  Alt 5. Jun 2021, 13:18
Die Fremdkomponenten direkt im Projekt mit zu kompilieren macht keinen Sinn. Binde diese doch einfach in kompilierter Form ein, dann hast du bei der Projektgröße keinerlei Probleme in der Richtung mehr.
Ob die Fremdkomponenten als BPL oder direkt in die EXE kommen, ist dabei egal,

Aber der größte Vorteil ist, dass man diese Komponenten auch ohne Debuginfos kompilieren kann (ohne extra in deren Units das deaktivieren zu müssen), während der eigene Code mit Debuginfos kompiliert werden kann,
abgesehn davon dass das Kompilieren des eigenen Programms dann schneller geht (und das "Speicherleck" im Inlinecompiler nicht stört).


Darum gehörten PAS und DCU auch in separate Suchpfade -> einmal für den Compiler und einmal für den Debugger.
Letzterer dafür, wenn man die Komponenten mit Debuginfos kompiliert hatte, aber das Programm nur mit DCUs oder BPLs kompiliert hat.


Zitat:
Arbeitsspeicher habe ich genug (40GB).
Ja und? Ich hab meistens 50 GB frei (von 100GB)
und "haben" oder "frei haben" ist erstmal ein großer Unterschied, wobei dieses hier nur für das gesammte System gilt, aber nicht für einzelne Prozesse (Programme).

Die Delphi-IDE ist 32 Bit und hat daher nur 2 GB virtuellen Speicher für seinen Prozess. OK, seit paar Jahren fast 4 GB (3 GB in einem 32 Bit-Windows), da man diese Option inzwischen aktiviert hat.
Und selbst mit 1 GB RAM könnte man locker auch die 4 GB nutzen, wenn die Auslagerungsdatei groß genug ist.

Der Inline-Compiler nutzt den Speicher des IDE-Prozesses.
Wenn man über die Console kompiliert (DCC32), dann hat man noch bissl mehr freien Speicher, im Prozess.

Und eine Projektgruppe, mit zuvielen Projekten, kann/muß man dann eben stückchenweise kompilieren (nicht Alles auf einmal) ... wobei es auch hier über die Console besser geht, da jedes Projekt seinen eigenen DCC32 bekommt. (selbst wenn man die Projektgruppe via MSBUILD zusammen erstellen lassen würde)
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.

Geändert von himitsu ( 5. Jun 2021 um 14:22 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von juergen
juergen

Registriert seit: 10. Jan 2005
Ort: Bönen
1.174 Beiträge
 
Delphi 11 Alexandria
 
#10

AW: Bei Windows 64 Bit kompilieren kommt Fehler: F2046 Zu wenig Arbeitsspeicher

  Alt 5. Jun 2021, 15:03
Hallo zusammen,

vielen Dank für die Hinweise, die haben geholfen!

Nun werden nur noch ca. 41.000 Codezeilen kompiliert!
In dem Bibliothekspfaden steht nichts mehr von "DevExpress". Man kann das auch schon direkt im Setup von DevExpress voreinstellen.

Allen noch ein schönes Wochenende!
Miniaturansicht angehängter Grafiken
setup-optionen-devexpress-direkt-vorhanden.png  
Jürgen
Indes sie forschten, röntgten, filmten, funkten, entstand von selbst die köstlichste Erfindung: der Umweg als die kürzeste Verbindung zwischen zwei Punkten. (Erich Kästner)
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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