Autor Beitrag
Hochhaus
ontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic starofftopic star
Beiträge: 662
Erhaltene Danke: 8

Windows 7
Delphi XE2
BeitragVerfasst: Di 06.05.14 17:13 
Hallo allerseits !

seit einiger Zeit frage ich mich, ob es für Delphi-Programme Grenzen gibt: Z. Bsp. Anzahl Zeilen pro Unit, Anzahl der verwendeten Variablen, Grösse des Quellcodes, Zeilenlänge im Source-Code usw.

Weiss jemand Rat ?

Vielen Dank im Voraus für jede Antwort !


Hochhaus
Mathematiker
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 2622
Erhaltene Danke: 1447

Win 7, 8.1, 10
Delphi 5, 7, 10.1
BeitragVerfasst: Di 06.05.14 18:02 
Hallo,
user profile iconHochhaus hat folgendes geschrieben Zum zitierten Posting springen:
...ob es für Delphi-Programme Grenzen gibt: Z. Bsp. Anzahl Zeilen pro Unit, Anzahl der verwendeten Variablen, Grösse des Quellcodes, Zeilenlänge im Source-Code usw.

Ich kann nur für mein Hobby-Matheprogramm sprechen und dort gibt es bisher keine Grenzen.
Die Haupt-Exe besteht aus über 380 Units, von denen die zeilenmäßig längste gegenwärtig 52000 Zeilen hat (compiliert 1,3 MB).

Und es zeigen sich bisher keinerlei Probleme, dass irgendwie eine Grenze erreicht werden könnte. Das Neucompilieren aller Units dauert nur wenige Sekunden.
Bei den Variablen vermute ich, dass es vielleicht für die Anzahl der globalen eine Einschränkung geben könnte. Da man aber möglichst lokale nutzt, sehe ich da kein Problem.
Zeilenlängen, die länger sind als der Monitor anzeigt, sollte man wohl auch nicht schreiben. Mit der Regel "Je Zeile genau eine Anweisung" werden die Zeilen wohl auch nicht so lang werden.
Zumindest glaube ich mich zu erinnern, dass durch einen Fehler in der Datei ich einmal eine Fehlermeldung: "Zeile zu lang hatte", da Delphi mehr als 65535 Zeichen in der Zeile gelesen hatte.

Mehr können Dir aber eher die Profis sagen, die Projekte mit Zeilenzahlen im Millionenbereich haben.
Ach so, bei mir ist es Delphi 5. Moderne Delphis werden sicherlich noch mehr bewältigen.

Beste Grüße
Mathematiker

Für diesen Beitrag haben gedankt: Hochhaus
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19277
Erhaltene Danke: 1741

W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Di 06.05.14 18:24 
Abgesehen von gewissen Limits was die Zeilenlänge angeht usw. gab es da auch in älteren Versionen nichts. Und an diese Limits ist man mit sauberem Code auch so gut wie nie gestoßen.
Das hat sich heute alles noch geändert, mittlerweile kann man ja sogar chinesische Variablennamen usw. nutzen. (Nicht dass es sinnvoll ist deutsche oder chinesische Bezeichner zu benutzen, aber es ist möglich.)

user profile iconMathematiker hat folgendes geschrieben Zum zitierten Posting springen:
Die Haupt-Exe besteht aus über 380 Units, von denen die zeilenmäßig längste gegenwärtig 52000 Zeilen hat (compiliert 1,3 MB).
Wobei da ein Refactoring sehr sinnvoll wäre. Dermaßen viele Zeilen in einer einzigen Unit sind unnötig unübersichtlich. Und in neueren Delphiversionen und mit Addons wie dem CnPack, die die aktuelle Unit für Error Insight oder Syntaxhighlighting analysieren, ist es dann unerträglich langsam.

Da du nur alleine daran arbeitest, fällt für dich der Faktor Teamarbeit weg, ansonsten wärst du schon alleine deswegen damit auf die Nase gefallen. Denn dann kommt es sehr oft vor, dass zwei Personen die selbe Unit bearbeiten. Das Mergen ist nicht lustig. ;-)

Für diesen Beitrag haben gedankt: Hochhaus, Mathematiker
Mathematiker
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 2622
Erhaltene Danke: 1447

Win 7, 8.1, 10
Delphi 5, 7, 10.1
BeitragVerfasst: Di 06.05.14 18:55 
Hallo,
user profile iconjaenicke hat folgendes geschrieben Zum zitierten Posting springen:
Dermaßen viele Zeilen in einer einzigen Unit sind unnötig unübersichtlich. ...
Da du nur alleine daran arbeitest, fällt für dich der Faktor Teamarbeit weg, ansonsten wärst du schon alleine deswegen damit auf die Nase gefallen. Denn dann kommt es sehr oft vor, dass zwei Personen die selbe Unit bearbeiten. Das Mergen ist nicht lustig. ;-)

Da gebe ich Dir vollkommen recht. Teamarbeit ist heute Grundvoraussetzung.
Deshalb könnte ich mein Geld mit Programmieren niemals verdienen; als Hobbyprogrammierer geht es aber noch.

Beste Grüße
Mathematiker

Für diesen Beitrag haben gedankt: Hochhaus
Hochhaus Threadstarter
ontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic starofftopic star
Beiträge: 662
Erhaltene Danke: 8

Windows 7
Delphi XE2
BeitragVerfasst: Di 06.05.14 19:08 
Soviel ich weiss, gab es aber viel früher Limiten. So z. Bsp. 256 Zeilen pro Unit unter Turbopascal 4.0 für DOS. Deshalb wollte ich mich vergewissern, dass es jetzt keine Grenzen mehr gibt ... ...


Hochhaus
jasocul
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 6388
Erhaltene Danke: 146

Windows 7 + Windows 10
Sydney Prof + CE
BeitragVerfasst: Mi 07.05.14 08:00 
user profile iconHochhaus hat folgendes geschrieben Zum zitierten Posting springen:
Soviel ich weiss, gab es aber viel früher Limiten. So z. Bsp. 256 Zeilen pro Unit unter Turbopascal 4.0 für DOS.

Eher unwahrscheinlich. Daran müsste ich mich erinnern. :wink:
Wenn ich mich richtig erinnere, gab es eine Begrenzung von 64k pro Unit. Eventuell auch noch eine maximale Zeilenlänge von 256 Zeichen. Aber wer schreibt schon so viele Zeichen in eine Zeile? Selbst heute, mit großen Monitoren, stehen bei mir selten mehr als 100 Zeichen in einer Zeile.
Ich nehme an, da hast du irgendwas verwechselt.

Für diesen Beitrag haben gedankt: Hochhaus
Perlsau
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Mi 07.05.14 09:25 
Ich kam zwar erst ab TP v6 mit Borland in Berührung, kann mich aber noch gut an die 64k-Begrenzung für Units erinnern. Das umfaßte nicht nur die reine Anzahl der Zeichen pro Unit, sondern auch den Platz, den Variablen benötigten. So stieß man mit zu großen Arrays schnell mal an diese Grenze, so daß der Compiler seinen Dienst verweigerte und eine Fehlermeldung ausspuckte. Für größere Record-Arrays emfahl es sich daher, jeweils eine eigene Unit anzulegen.

Für diesen Beitrag haben gedankt: Hochhaus
Lemmy
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 792
Erhaltene Danke: 49

Windows 7 / 10; CentOS 7; LinuxMint
Delphi 7-XE10.1, VS 2015
BeitragVerfasst: Mi 07.05.14 09:44 
user profile iconjaenicke hat folgendes geschrieben Zum zitierten Posting springen:

user profile iconMathematiker hat folgendes geschrieben Zum zitierten Posting springen:
Die Haupt-Exe besteht aus über 380 Units, von denen die zeilenmäßig längste gegenwärtig 52000 Zeilen hat (compiliert 1,3 MB).
Wobei da ein Refactoring sehr sinnvoll wäre. Dermaßen viele Zeilen in einer einzigen Unit sind unnötig unübersichtlich. Und in neueren Delphiversionen und mit Addons wie dem CnPack, die die aktuelle Unit für Error Insight oder Syntaxhighlighting analysieren, ist es dann unerträglich langsam.


das geht nicht mal in alten Versionen vernünftig... ich habe hier ne Datei mit 240.000 Zeilen/12 MByte (incl. Kommentare). Aufteilen ist aber nicht: Ist ein Produkt eines Imports einer .NET DLL - heißt bei jedem Import (nach einer Änderung der DLL) müsste ich neu aufteilen. Inzwischen habe ich die Datei aber rausgeworfen und mache das über die späte Bindung.

Grüße

Für diesen Beitrag haben gedankt: Hochhaus
Popov
ontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic starofftopic star
Beiträge: 1655
Erhaltene Danke: 13

WinXP Prof.
Bei Kleinigkeiten D3Pro, bei größeren Sachen D6Pro oder D7
BeitragVerfasst: Mi 07.05.14 14:56 
Ich denke mir mal die Grenzen von Delphi sind die Grenzen von Windows. Entweder man kann max. 256 Units haben, wenn mehr, dann wäre die nähste Grenze 65535 usw. Wobei Excel 2007 z. B. max. 1048576 Zeilen hat ($FFFFF), es ist also nicht immer einer Verdoppelung, aber auch keine willkürliche Grenze.

Was ich früher mal gelesen habe, galt aber soweit ich weiß für TP, dass Variablennamen max. 16 Zeichen lang sein konnten. Man durfte längere Namen nehmen, aber nur die ersten 16 Zeichen wurden beachtet.

_________________
Popov

Für diesen Beitrag haben gedankt: Hochhaus