AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Die Delphi-IDE 10.4 Sydney IDEFixpack kommt da noch was ?
Thema durchsuchen
Ansicht
Themen-Optionen

10.4 Sydney IDEFixpack kommt da noch was ?

Ein Thema von Borni · begonnen am 1. Sep 2020 · letzter Beitrag vom 28. Okt 2020
Antwort Antwort
Seite 3 von 6     123 45     Letzte »    
woodie

Registriert seit: 30. Sep 2020
6 Beiträge
 
#21

AW: 10.4 Sydney IDEFixpack kommt da noch was ?

  Alt 30. Sep 2020, 14:13
Wir haben extra ein Tool geschrieben, dass uns die USES sortiert. Beim programmieren landen Neue i.d.R. nicht an der optimalen Stelle.
Was ist die optimale Reihenfolge für den Compiler? Wie findet eurer Tool das automatisch raus?
  Mit Zitat antworten Zitat
Benutzerbild von dummzeuch
dummzeuch
Online

Registriert seit: 11. Aug 2012
Ort: Essen
1.605 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#22

AW: 10.4 Sydney IDEFixpack kommt da noch was ?

  Alt 30. Sep 2020, 14:31
Wir haben extra ein Tool geschrieben, dass uns die USES sortiert. Beim programmieren landen Neue i.d.R. nicht an der optimalen Stelle.
Was ist die optimale Reihenfolge für den Compiler? Wie findet eurer Tool das automatisch raus?


Genau dies würde mich auch brennend interessieren.
Thomas Mueller
  Mit Zitat antworten Zitat
OlliWW

Registriert seit: 31. Aug 2011
159 Beiträge
 
#23

AW: 10.4 Sydney IDEFixpack kommt da noch was ?

  Alt 30. Sep 2020, 15:05
Wahrscheinlich entscheidet das Tool nur ob es in der Implementatation oder im Interface landet. Sowas können aber meines Erachtens nach auch viele andere Tools bereits.
  Mit Zitat antworten Zitat
freimatz

Registriert seit: 20. Mai 2010
1.446 Beiträge
 
Delphi 11 Alexandria
 
#24

AW: 10.4 Sydney IDEFixpack kommt da noch was ?

  Alt 30. Sep 2020, 16:20
Ein wichtiger Trick für das Optimum der Compilerzeiten liegt in der richtigen Reihenfolge der Units im USES. Wir haben hier ewig probiert und optimiert und haben über 30 Minuten rausgeholt.
...
Evt. hilft Euch das weiter...

Viele Grüße, Lars
Danke. Noch mehr würde es helfen wenn Du uns verrätst, was denn die richtige Reihenfolge ist.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

AW: 10.4 Sydney IDEFixpack kommt da noch was ?

  Alt 30. Sep 2020, 17:21
Darum auch meine Empfehlung möglichst nur das USES im Interface zu benutzen.

Dort steht dir Reihenfolge fest, also immer in der Reihenfolge, wie es im Code steht.
* erste Unit
* dann das was in dieser Unit steht
* dann zweite Unit (falls nicht bereits in untergeordneten Units geladen)
* usw.

Das was im USES der Implementation steht, das kann der Compiler in beliebiger Reihenfolge einbinden.

Auch werden UNITs der Implementation eventuell erst nach dem Code der Initialization geladen und bereits vor der Finalization entladen,
während die UNITs im Interface immer vor Initialization geladen und erst nach Finalization entladen werden, womit deren Funktionen dort (sicher) nutzbar sind.
Selbes gilt für Codes der Class-Constructor und Class-Destructor.
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.

Geändert von himitsu (30. Sep 2020 um 17:25 Uhr)
  Mit Zitat antworten Zitat
Commander Tom

Registriert seit: 9. Dez 2005
Ort: Ettlingen
64 Beiträge
 
Delphi 12 Athens
 
#26

AW: 10.4 Sydney IDEFixpack kommt da noch was ?

  Alt 30. Sep 2020, 23:33
40 Minuten, um zu compilieren ? Wie macht ihr das bei Änderungen im Code ? Nur einmal am Tag compilieren oder jedes Mal 40 Minuten warten ? Das ist doch nicht wirklich handelbar, oder ?

Wenn ihr ein Tool geschrieben habt, um die Units zu sortieren, dann wäre diese Erkenntnis sicher auch für andere Entwickler sehr hilfreich. Gibt es da eine generelle Strategie ? Oder war das Try and Error (bei 40 Minuten eine wohl wahrlich mühsame Geschichte)? Ansonsten würden wir uns natürlich freuen, darüber mehr zu erfahren.

Es wäre auch mal ganz interessant, auf welcher Hardware diese Compilier-Zeiten erreicht werden und ob sich da evtl. durch Aufrüsten noch was verbbessern lässt.
Commander Tom
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

AW: 10.4 Sydney IDEFixpack kommt da noch was ?

  Alt 1. Okt 2020, 01:17
So wie es viele große Projekte machen, wie z.B. Firefox.

Niemand kompiliert selbst, sondern es wird regelmäßig durch einen Build-Server erledigt und das Ergebnis dann irgendwo bereit gestellt.

Nightly Build, bzw. Daily Build usw.
https://de.wikipedia.org/wiki/Nightly_Build
https://de.wikipedia.org/wiki/Testautomatisierung




PS: Zwar noch nicht für den Delphi-Code, aber schonmal für den Datenbank-Teil,
hängt am GIT-Push (damals SVN-Commit) ein Event, welches einen Build-Server (CI / Continuous Integration) angestoßen, welcher eine Test-Datenbank erzeugt und verschiedene Tests laufen lässt.
Sowas kann man auch für das Erstellen machen. Bei uns werden die paar Mio Zeilen (noch mit XE, aber ich bin gerade damit beschäftigt es auf 10.4 umzustellen) eigener und fremder Code im FinalBuilder erzeugt, samt den Setups und der Hilfedateien.,
und sowas geht auch in einem Server.

Inzwischen haben wir auch ein paar GUI-Tests (noch als eigenständiges Programm > TestComplete von Smartbear).
Jetzt könnte man also automatisch in einem Server den Quellcode auschecken, über das Build-Script die Delphi-Projekte (EXE/DLL/BPL) erzeugen, jede Nacht einmal alles Tests ausführen und hätte morgens die Ergesnisse ... geht durch eine kleine Änderung irgendeine bekannte Funktion kaputt, für die es auch einen Test gibt, dann bekommt es nicht erst der Kunde mit.




Wenn das Build/Compile dann aber nur noch über den Server liefe, dann mußt du nach einer Änderung erst bis morgen warten, bis du siehst, ob ein z.B. Semikolon fehlt.

Wir kompilieren den Großteil lokal über FinalBuilder und jeder nur noch die eine DLL/BPL/EXE im Delphi, an welcher gerade gearbeitet wird.
Das dauert im Delphi (XE mit IDESpeedPack) einige Minuten und im FinalBuilder in unter 2 Minuten (nur der Delphi-Code), da dort alle Fremdkomponenten und mehrere eigene DLL/EXE und viele der BPL parallel (multithreated) kompiliert werden.
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.

Geändert von himitsu ( 1. Okt 2020 um 02:11 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Ralf Kaiser
Ralf Kaiser

Registriert seit: 21. Mär 2005
Ort: Wuppertal
932 Beiträge
 
Delphi 10.3 Rio
 
#28

AW: 10.4 Sydney IDEFixpack kommt da noch was ?

  Alt 1. Okt 2020, 07:26
Wir haben derzeit knapp 3 Mio. selbst geschriebener Code-Zeilen und noch einige Imports.
Im RIO mit IDEFixPack sind wir im Optimalfall bei reichlich 6min. Sydney braucht ca. 40 min. (Ist damit aber schneller als RIO ohne IDEFixPack)
Auf welcher Hardware kompiliert ihr denn?? Bei uns läuft ein kompletter Rio Build auf dem Buildserver etwa 6 Minuten. Und das bei etwas über 2 Mio Zeilen Code und der komplette Build macht noch eine Menge anderer Sachen (verschlüsseln von Datendateien, kopieren der erzeugten Artefakte auf verschiedene Server usw). Das reine Kompilieren der Delphi Sourcen dauert unter 3 Minuten.

Wo kommen bei euch denn die 40 Minuten her?? (nur aus Interesse)
Ralf Kaiser
  Mit Zitat antworten Zitat
HeZa

Registriert seit: 4. Nov 2004
Ort: Dortmund
182 Beiträge
 
Delphi 10 Seattle Professional
 
#29

AW: 10.4 Sydney IDEFixpack kommt da noch was ?

  Alt 1. Okt 2020, 08:36
Darum auch meine Empfehlung möglichst nur das USES im Interface zu benutzen.

Dort steht dir Reihenfolge fest, also immer in der Reihenfolge, wie es im Code steht.
* erste Unit
* dann das was in dieser Unit steht
* dann zweite Unit (falls nicht bereits in untergeordneten Units geladen)
* usw.

Das was im USES der Implementation steht, das kann der Compiler in beliebiger Reihenfolge einbinden.
wenn ich also die Units A, B und C habe und alle 3 den Bezeichner X definieren und ich in der implementation uses A, B, C angebe und X in meiner Unit verwende, dann verwende ich unter Umständen das X aus B oder A?

*Kopfkratz*
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.197 Beiträge
 
Delphi 10.4 Sydney
 
#30

AW: 10.4 Sydney IDEFixpack kommt da noch was ?

  Alt 1. Okt 2020, 08:40
3 Mio. Quellcodezeilen - 40 Minuten?
Kann es sein das ihr noch mit 20 Jahre alten Rechner auf Netzwerklaufwerken mit 10BASE2 arbeitet?

Kopiert ihr lokal oder Netzwerk?
Wenn Netzwerk - Wieso? Mit Git und Co ist doch eine "sichere Ablage Quellcode" so nicht nötig.
Wenn Lokal - Ach mal den Virenscanner abgeschaltet? Diese können ziemlich Mistig sein und die kompilierung durch Analyse der Zwischendateien stark bremsen.
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 3 von 6     123 45     Letzte »    


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