AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Delphi Integer-Datentypen - DH empfiehlt immer Integer oder Cardina
Thema durchsuchen
Ansicht
Themen-Optionen

Integer-Datentypen - DH empfiehlt immer Integer oder Cardina

Ein Thema von christian_r · begonnen am 4. Mai 2008 · letzter Beitrag vom 5. Mai 2008
Antwort Antwort
Seite 3 von 3     123   
christian_r
(Gast)

n/a Beiträge
 
#21

Re: Integer-Datentypen - DH empfiehlt immer Integer oder Car

  Alt 5. Mai 2008, 01:29
Zitat von Muetze1:
Die generischen Typen wachsen mit und somit sind alle Strukturdefinitionen, welche irgendwie das Programm verlassen, damit definiert worden, damit sie gleich gross bleiben, egal auf welchem Compiler.
Das bedeutet also, wenn man programmintern fundamentale Typen verwender, ist es egal, sogar angebracht. Aber wenn man "das Programm verlässt", z. B. bei API-orientierten Anwendungen, sollte man die generischen Typen verwenden, da diese sich dem zugrundeliegenden Betriebssystem und der CPU anpassen, demzufolge auch der API zugrunde liegen.

[edit]
Ich bleibe mal beim API-Beispiel.
Wenn ich auf einem 32 Bit Betriebssystem einen API-Aufruf mit einem Ordinalwert starte, dann ist der zugrundeliegende Datentyp auch 32Bit und bei einem 64 Bit Betriebssystem würde er automatisch ebenfalls 64 Bit Länge erhalten. Somit wäre es ungünstig, einen Longint zum Emfpang eines Rückgabewertes einer API-Funktion zu verwenden, welche einen ordinalen Wert zurückliefert. Denn in einem 64-Bit-System wäre der Rückgabewert für den Longint schon nicht mehr speicherbar, bzw. nur über Umwege zu verarbeiten. Und das wäre dann die veringerung der Performance, wie es in der DH schon beschrieben wurde.

Verwende ich generische Typen, kann ich die Anwendung auf verschiednen XXX-Bit-System laufen lassen ohne Probleme mit der Speicherung der Werte zu haben.
[/edit]

Richtig verstanden?
  Mit Zitat antworten Zitat
Medium

Registriert seit: 23. Jan 2008
3.679 Beiträge
 
Delphi 2007 Enterprise
 
#22

Re: Integer-Datentypen - DH empfiehlt immer Integer oder Car

  Alt 5. Mai 2008, 03:00
Leider ist die Welt nicht ganz so schön. Wie breit ein generischer Typ ist, wird vom Compiler festgelegt, und zwar zur Compiletime. Das heisst, du kannst das beschriebene Verhalten nicht von ein und der selben Executable erwarten, sondern musst schon noch die Quelle mit einem jeweiligen Compiler übersetzen. Der Gewinn der daraus entstünde wäre, dass du im Code nichts anzupassen bräuchtest. (Und man müsste voraussetzen können, dass die API auch in vollem Umfang mit "wächst".)

Die Kommunikation mit einer API ist aber eigentlich nicht der Grund weswegen man generische Typen empfiehlt. Da geht es in der Tat eher um das schon beschriebene Alignment, und um zu durchschauen warum das genau ein Vorteil ist, ist etwas Lektüre zu CPU-Architektur bzw. Datenbussen und Pipelines nicht übel. Einfach gesagt ist man damit "netter" zur CPU, und wird durch höhere Geschwindigkeit belohnt. In den meisten Anwendungen dürfte der Unterschied vermutlich nicht gravierend auffallen, aber manchmal kommt es halt auf jeden Cycle an, den man so einfach gewinnen kann.
"When one person suffers from a delusion, it is called insanity. When a million people suffer from a delusion, it is called religion." (Richard Dawkins)
  Mit Zitat antworten Zitat
christian_r
(Gast)

n/a Beiträge
 
#23

Re: Integer-Datentypen - DH empfiehlt immer Integer oder Car

  Alt 5. Mai 2008, 03:17
Zitat von Medium:
Wie breit ein generischer Typ ist, wird vom Compiler festgelegt, und zwar zur Compiletime. Das heisst, du kannst das beschriebene Verhalten nicht von ein und der selben Executable erwarten, sondern musst schon noch die Quelle mit einem jeweiligen Compiler übersetzen. Der Gewinn der daraus entstünde wäre, dass du im Code nichts anzupassen bräuchtest.
OK, das habe ich klar verstanden.

Zitat von Medium:
Die Kommunikation mit einer API ist aber eigentlich nicht der Grund weswegen man generische Typen empfiehlt.
War nur ein Anwendungsbeispiel, welches ich vermutet habe.

Zitat von Medium:
Da geht es in der Tat eher um das schon beschriebene Alignment, und um zu durchschauen warum das genau ein Vorteil ist, ist etwas Lektüre zu CPU-Architektur bzw. Datenbussen und Pipelines nicht übel.
Ich habe zu Alignment mal Wikipedia befragt. Wikipedia :: Speicherausrichtung

Wenn mir bitte jemand ein kleineres Anwendungsszenario beschreiben möchte, ich bin dem Lernen nicht abgeneigt. Und das macht es bestimmt einfacher verstehbar.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 3 von 3     123   


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 11:47 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