Delphi-PRAXiS
Seite 3 von 4     123 4   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Die Delphi-IDE (https://www.delphipraxis.net/62-die-delphi-ide/)
-   -   Warum Delphi 64-Bit-IDE (https://www.delphipraxis.net/204212-warum-delphi-64-bit-ide.html)

jbg 7. Mai 2020 20:45

AW: Warum Delphi 64-Bit-IDE
 
Zitat:

Zitat von himitsu (Beitrag 1463931)
aber die komplette Projektgruppe auf einmal kompilieren, naja ...

Bei vielen Packages sind dann viele Units mehrfach im Speicher des Compilers und im Speicher von ErrorInsight. Der Compiler hält für jedes Projekt der Projekgruppe eine eigene Kopie der genutzten Units, unabhängig ob sie explizit ("uses MyUnit in 'MyUnit.pas'") oder implizit (uses YourUnit) eingebunden sind.


Package A:
- Unit A1
- Unit A2

Package B:
- requires A
- Unit B1: uses A1, A2
- Unit B2

EXE-Projekt:
- Runtime Packages: A, B
- Unit C1 uses B1, B2
- Unit C2


Das führt beim Kompilieren und beim CodeInsight zu folgenden Units im Speicher:
- Package A: (SysInit, System, A1, A2)
- Package B: (SysInit, System, A1, A2, B1, B2)
- EXE-Projekt: (SysInit, System, A1, A2, B1, B2, C1, C2)

Und das ganze zwei Mal, da ErrorInsight auch noch alle expliziten Units im Speicher hält.


Wenn man das auf mehrere Packages hochrechnet, dann sieht man recht schnell das Ende des virtuellen Adressraums.


Es wird interessant was bei Delphi 10.4 mit seinem LSP Server herauskommt. Ob pro Projekt ein eigener Prozess läuft oder die Prozesse nur für unterschiedlichen Aufgaben (ErrorInsight, CodeInsight) zuständig sind und man nur ein wenig mehr "Luft" wegen der Aufsplittung hat. Der LSP Server ist ja laut TaskManager-Screenshot immernoch 32Bit.

win568 7. Mai 2020 20:51

AW: Warum Delphi 64-Bit-IDE
 
Hi Andi

Wäre natürlich wieder zu viel zu erwarten gewesen, dass Emba hier einen 64 Bit LSP Server spendiert hätte. Das hätte auf jeden Fall das Problem entschärft.

Habe mir die Beta schon installiert, aber derzeit funktioniert bei unseren Projekten keine der genannten Funktionen. Werde mal auf die nächste Version warten

Daniel 7. Mai 2020 22:08

AW: Warum Delphi 64-Bit-IDE
 
Zitat:

Zitat von win568 (Beitrag 1463943)
Wäre natürlich wieder zu viel zu erwarten gewesen, dass Emba hier einen 64 Bit LSP Server spendiert hätte. Das hätte auf jeden Fall das Problem entschärft

Nachdem 64 Bit ihn nicht schneller gemacht hätten, kann es nur um die Menge an verfügbarem Speicher gehen. Inwiefern sollte ihn die 32 Bit Architektur in dieser Hinsicht ausbremsen? Auch bei umfangreichen Projekten liegt dessen Speicherverbrauch weit unterhalb jeglicher Limits. Welches Problem also würde jetzt durch die 64 Bit Architektur konkret entschärft?

win568 8. Mai 2020 06:53

AW: Warum Delphi 64-Bit-IDE
 
Hi Daniel

In unserem Fall das Speicherproblem. Ein 32Bit Prozess kann maximal 4GB Speicher belegen. Wie Andi ja bereits beschrieben hat, wird das Problem mit den Packages potenziert. Daher wäre hier eine vorausschauende Entscheidung gewesen, den LSP Server Dienst unter 64Bit zu bauen.

Damit bei uns die Windows Entwicklung funktioniert, räume ich Delphi aus. Alle nicht für 32/64Bit benötigten Known IDE Packages werden entfernt. Damit gewinnt man schon mal 400 MB an virtuellem Speicher. Wir haben eigen Experts entwickelt, die sowohl Packages als auch Monolithen "Out of Delphi" compilieren können. Der Grund darin liegt, dass Delphi bei Erzeugen anscheinend mit Speicherlecks zu kämpfen hat. Beim Erzeugen geht der Speicher über 4GB, starte ich neu und führe es erneut aus, werden die restlichen Units dazucompiliert und der Speicher bleibt unter 4GB. Mit dem "Out of Delphi" erzeugen funkt es auch so.

Sherlock 8. Mai 2020 07:43

AW: Warum Delphi 64-Bit-IDE
 
Also zugunsten einer Komfortfunktion (Projektgruppe) verzichtet Ihr auf alles andere? Das spricht dann doch viel eher dafür, lieber mal die Gruppe zu entkrauten und auf andere Technologien wie Jenkins zu setzen.

Sherlock

win568 8. Mai 2020 07:54

AW: Warum Delphi 64-Bit-IDE
 
Hmm. Welche Komfortfunktion ?? Die Packages bauen aufeinander auf. Dadurch sind diese in einer Gruppe zu halten, da viele Programmierer an unterschiedlichen Dateien arbeiten und einchecken. Mit dem nächsten Svn Abgleich müssen teilweise die Packages wieder neu erzeugt werden. Wir verwenden Jenkins zwar als Unittestserver, aber was soll es uns bei der Entwicklung bringen ??

Moombas 8. Mai 2020 08:06

AW: Warum Delphi 64-Bit-IDE
 
Also ich denke wie gesagt, das man sagen kann:
  • Für die meisten Projekte wird durch 64-Bit sich nichts ändern
  • Durch 64-Bit wird es nicht schneller, es steht nur mehr Speicher zur Verfügung (im Prinzip Zukunftssicherer wenn man die steigende Komplexität bei vielen Anwendungen betrachtet)
  • Sollte mit 32-Bit mal das gleiche passieren wie mit 16-Bit (nicht mehr von der CPU unterstützt), wäre man darauf bereits vorbereitet (bei Android z.B. kann man ja soweit ich weiß nur noch 64-Bit hoch laden, da ist der Weg zur "nicht mehr Unterstützung" nicht mehr weit). Man wäre hier also auch Zukunftssicherer.

himitsu 8. Mai 2020 08:52

AW: Warum Delphi 64-Bit-IDE
 
Zitat:

Zitat von Sherlock (Beitrag 1463968)
Also zugunsten einer Komfortfunktion (Projektgruppe) verzichtet Ihr auf alles andere?

Wir nutzen FinalBuilder und ein CI, was aktuell nur das Testen, aber "noch" nicht das Kompilieren übernimmt,
aber leider haben wir beim Debuggen ein kleines Problem, wodurch der FinalBuilder+Eurekalog die Debugginfos von Delphi schrottet und der Delphi-Debugger somit diese Projekte nicht debuggen kann, außer man kommpiliert im Delphi neu.

Meistens reicht es im Delphi dann nur 1-3 EXE/DLL/BPL zu kompilieren,
aber bis vor Kurzem ist Delphi bei Kompilieren der untersten 25 Packages fast immer komplett abgeraucht. (ja, das war unsere eigene Schuld, aber es hatte ewig bebraucht die Fehler zu finden)
Somit mußte ich öfters, wenn ich "schlimmes" Fehler überall suchen wollte, woher alles löschen, Delphi sauber starten und konnte/musste dann einmal alles durchkompilieren.

PS: Die eine alte Funktion von Delphi ist echt saublöd.
"Automatisch speichern beim Kompilieren" speichert nach dem erfolgreichen Kommpilieren, also erst nachdem Delphi abgestürzt ist, und somit war dann alles futsch.

Auch wird der "Desktop" nicht gespeichert (XE), wenn man "Speichert", sondern erst wenn man Delphi schließt. Und keine Ahnung wie die das machen, aber wenn Delphi abstürzte, dann wart das auch oft futsch und Delphi startet dann ohne das letzte Projekt zu öffnen mit eimen zerlegten Layout (alles abgedockt und fehlende Module, aber gespeicherter Desktop laden geht zum glück), aber auch nach anschließenden dem Öffnen der Projektgruppe fehlt dann alles, wie geöffnete Dateien und vor allem sind die Haltepunkte weg.


PS: 16 Bit läuft doch noch?
Wenn man DOS, Windows 1 oder ein 32 Bit Windows nutzt. Das 16 Bit-Subsystem wurde doch nur im 64 Bit-Windows entfernt, oder ist es nun auch schon aus 32 Bit raus?

jaenicke 8. Mai 2020 09:47

AW: Warum Delphi 64-Bit-IDE
 
Zitat:

Zitat von win568 (Beitrag 1463965)
Wir haben eigen Experts entwickelt, die sowohl Packages als auch Monolithen "Out of Delphi" compilieren können.

Dafür gibt es auch ein Häkchen in den Projektoptionen, dass msbuild extern verwendet werden soll.

Zitat:

Zitat von win568 (Beitrag 1463969)
Hmm. Welche Komfortfunktion ?? Die Packages bauen aufeinander auf. Dadurch sind diese in einer Gruppe zu halten, da viele Programmierer an unterschiedlichen Dateien arbeiten und einchecken. Mit dem nächsten Svn Abgleich müssen teilweise die Packages wieder neu erzeugt werden.

Dafür braucht man aber keine Projektgruppe mit allen Packages. Bei uns ist das z.B. unterteilt in die Packages mit gemeinsamen Units und Komponenten, die von den verschiedenen Projekten für Anwendungen und DLLs dann verwendet werden. Diese Packages werden per Kommandozeile installiert und mit msbuild erzeugt.

Beim Debuggen usw. haben wir dann nur die Projektgruppe oder das Einzelprojekt offen, an dem wir konkret arbeiten.

Würden wir das anders machen, hätten wir insbesondere bei Versionen wie XE6 deutliche Probleme gehabt. So funktionierte es selbst da schon recht gut und in den 10er Versionen haben wir so gut wie gar keine Probleme mehr damit.

Zitat:

Zitat von himitsu (Beitrag 1463977)
PS: Die eine alte Funktion von Delphi ist echt saublöd.
"Automatisch speichern beim Kompilieren" speichert nach dem erfolgreichen Kommpilieren, also erst nachdem Delphi abgestürzt ist, und somit war dann alles futsch.

Man sieht bereits beim Kompilieren, dass sich der Speicherknopf deaktiviert. Das Speichern passiert vor dem Kompilieren.

Zitat:

Zitat von himitsu (Beitrag 1463977)
Auch wird der "Desktop" nicht gespeichert (XE), wenn man "Speichert", sondern erst wenn man Delphi schließt.

Das stimmt. Das hat aber den Vorteil, dass es bei Abstürzen durch eine bestimmte offene Unit oder ein Projekt nicht gleich beim Start wieder einen Absturz gibt.

Moombas 8. Mai 2020 10:05

AW: Warum Delphi 64-Bit-IDE
 
Zitat:

Zitat von himitsu (Beitrag 1463977)
PS: 16 Bit läuft doch noch?
Wenn man DOS, Windows 1 oder ein 32 Bit Windows nutzt. Das 16 Bit-Subsystem wurde doch nur im 64 Bit-Windows entfernt, oder ist es nun auch schon aus 32 Bit raus?

Das hängt von deiner CPU ab (oder dessen benötigter Chipsatz), nicht vom verwendeten Betriebssystem (zumindest ist es mir beim letzteren nicht bekannt).
Bei uns der I3-6100 mit Intel Q270er Chipsatz.
Intel hat bei allen neuen Prozessoren die Unterstützung dessen abgeschaltet.

Bei uns musste ein Softwarelieferant daher viele Routinen nochmal in 32-Bit neu kompilieren, weil das mit der neuen PC-Hardware für die Stores nicht mehr lief (OS ist gleich geblieben; NTVDM hing sich dann immer mit 25% auf).
Wobei er laut Wiki es können soll...

Und die Software ist auch schon uralt...


Alle Zeitangaben in WEZ +1. Es ist jetzt 20:49 Uhr.
Seite 3 von 4     123 4   

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