AGB  ·  Datenschutz  ·  Impressum  







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

Units oder Include-Dateien - Overhead?

Ein Thema von guidok · begonnen am 11. Okt 2007 · letzter Beitrag vom 21. Feb 2008
Antwort Antwort
guidok

Registriert seit: 28. Jun 2007
417 Beiträge
 
#1

Units oder Include-Dateien - Overhead?

  Alt 11. Okt 2007, 07:13
Hallo,

um meinen Code etwas übersichtlicher zu gestalten, habe ich ihn bisher auf mehrere Units verteilt. Das hat den Vorteil, dass ich nicht einen ellenlangen Quelltext bekomme durch den ich ewig scrollen muss, sondern das Ganze nach Funktionsgruppen aufteile und diese dann auch getrennt austesten und später "vergessen" kann.

Jetzt habe ich irgendwo (?) gelesen, dass das Einbinden von Units einen zusätzlichen Overhead im Programm erzeugt (also auch die EXE vergrößert), während das bei Include-Dateien nicht so wäre. Hat da jemand Informationen dazu und weiß, ob es sich überhaupt lohnt darüber nach zu denken?

Gruß,
Guido
  Mit Zitat antworten Zitat
Hansa

Registriert seit: 9. Jun 2002
Ort: Saarland
7.554 Beiträge
 
Delphi 8 Professional
 
#2

Re: Units oder Include-Dateien - Overhead?

  Alt 11. Okt 2007, 07:21
Nene, das hast du falsch verstanden. $I erzeugt praktisch den identischen Quelltext, wie er sowieso da wäre. Die einzelnen Units werden dadurch compiliert nicht größer.
Gruß
Hansa
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.195 Beiträge
 
Delphi 10.4 Sydney
 
#3

Re: Units oder Include-Dateien - Overhead?

  Alt 11. Okt 2007, 07:33
Includedateien werden primär dazu verwenden Compilerschalter in Quelldateien unterzubringen und nicht im Projekt definieren zu müssen. Ist vor allem für Komponentenhersteller sinnvoll, da sonst jeder User default-werte von Compilerschaltern in jedem Projekt unterbringen müsste.
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
guidok

Registriert seit: 28. Jun 2007
417 Beiträge
 
#4

Re: Units oder Include-Dateien - Overhead?

  Alt 11. Okt 2007, 07:39
Zitat:
Nene, das hast du falsch verstanden. $I erzeugt praktisch den identischen Quelltext, wie er sowieso da wäre. Die einzelnen Units werden dadurch compiliert nicht größer.
Wenn ich dich jetzt richtig verstehe, dann hatte ich das schon richtig verstanden. Mit $I kann ich einfach Teile des Quelltextes in eine andere Datei auslagern (bei mir aus den genannten Gründen), die dann beim Compilieren wieder "zusammen gesucht" werden. Klar. Bei Units mache ich ja im Prinzip auch nichts anderes: Ich lagere einzelne Funktionsblöcke in andere Dateien aus und binde sie mit der uses Klausel wieder in mein Programm ein. Die Frage ist ja, ob das Unit-Konzept dabei einen größeren Overhead erzeugt (so hatte ich das Gelesene verstanden) oder nicht.
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.858 Beiträge
 
Delphi 11 Alexandria
 
#5

Re: Units oder Include-Dateien - Overhead?

  Alt 11. Okt 2007, 07:42
Die Verwendung von Units erzeugt klar einen Overhead, da es nicht das selbe wie ein include ist. Units sind Module.
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von RavenIV
RavenIV

Registriert seit: 12. Jan 2005
Ort: Waldshut-Tiengen
2.875 Beiträge
 
Delphi 2007 Enterprise
 
#6

Re: Units oder Include-Dateien - Overhead?

  Alt 11. Okt 2007, 09:01
Jetzt gebe ich auch meinen Senf dazu.

Includes:
- überall, wo Du $I datei.inc machst, wird der Code der inc-Datei eingefügt.. Also wenn Du das in 10 Dateien hast, wird der Code 10x eingefügt.
- in Includes kannst Du nicht "surfen". Klick mal bei gedrückter STRG-Taste auf eine Funktion oder Variable oder Klasse. Dann kommst Du zu der Definition. Mit ALT-CursorLinks kommst Du wieder zurück. Das funktioniert innerhalb einer inc-Datei nicht.
- Das "Suchen in Verzeichnissen" schliesst die inc-Dateien nicht mit ein.
- im Delphi-Editor werden inc-Dateien nicht mit CodeHighlighting dargestellt, sehen also nicht so "schön" aus.

Uses, Units:
- die Unit wird genau dort eingebunden, wo sie benötigt wird
- eine Unit wird nicht mehrmals eingebunden
- das "surfen" funktioniert
- CodeHighlighting geht

Also wenn ich includes sehe, bei denen mehr als nur "Globale Variablen" oder "Globale Definitionen" oder Compiler-Direktiven drin sind, gibt's Schimpfe.
Alles andere ist nämlich bei uns in der Firma "verboten".

Mir graut's schon immer, wenn ich was mit den IBObjects machen muss. Dort wimmelt es nur so von includes.
Klaus E.
Linux - das längste Text-Adventure aller Zeiten...
Wer nie Linux mit dem vi konfiguriert hat, der hat am Leben vorbei geklickt.
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#7

Re: Units oder Include-Dateien - Overhead?

  Alt 11. Okt 2007, 09:28
Zitat von RavenIV:
- im Delphi-Editor werden inc-Dateien nicht mit CodeHighlighting dargestellt, sehen also nicht so "schön" aus.
Delphi 7 Professional: Codehighlightning geht auch in Include Dateien.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
guidok

Registriert seit: 28. Jun 2007
417 Beiträge
 
#8

Re: Units oder Include-Dateien - Overhead?

  Alt 21. Feb 2008, 07:11
Ich muss noch einmal (nach einiger Zeit) eine Frage dazu loswerden:

Wird eine Unit komplett in die exe kompiliert? Also, ich habe eine Unit mit vielen nützlichen Proceduren und Funktionen, die ich in die uses-Klausel mit aufnehme. Daraus benötige ich dann im Quelltext nur eine Funktion. Wird dann nur die benötigte Funktion in die exe eingebunden oder alles?

Ich weiß, in Zeiten riesiger Arbeitsspeiche muss man sich keinen großen Kopf um solche Sachen machen, aber etwas interessiert es mich doch und ich bin da auch etwas penibel...

Guido
  Mit Zitat antworten Zitat
Benutzerbild von turboPASCAL
turboPASCAL

Registriert seit: 8. Mai 2005
Ort: Sondershausen
4.274 Beiträge
 
Delphi 6 Personal
 
#9

Re: Units oder Include-Dateien - Overhead?

  Alt 21. Feb 2008, 08:13
Zitat von Luckie:
Zitat von RavenIV:
- im Delphi-Editor werden inc-Dateien nicht mit CodeHighlighting dargestellt, sehen also nicht so "schön" aus.
Delphi 7 Professional: Codehighlightning geht auch in Include Dateien.
Auch in Delphi 6 PE.

Übrigens, das "Deklaration suchen" etc auch.


@guidok, es wird aus der Unit nur das eingebunden was auch verwendet wird. Der Rest bleibt draussen.

Sinn macht das auslagern verschiedener Proceduren und Funktionen (sowie Konstanten etc.) in Include Datein nur wenn man es mit der nonVCL-Programierung gern mal übertreibt.
Solche Kopieraktionen dauern dann mal schon so um die 2 h
Matti
Meine Software-Projekte - Homepage - Grüße vom Rüsselmops -Mops Mopser
  Mit Zitat antworten Zitat
guidok

Registriert seit: 28. Jun 2007
417 Beiträge
 
#10

Re: Units oder Include-Dateien - Overhead?

  Alt 21. Feb 2008, 08:47
Danke turboPascal! Das habe ich mir schon so gedacht und es ist ja auch sinnvoll so.
  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 13:02 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