AGB  ·  Datenschutz  ·  Impressum  







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

Alle Variabel Typen

Ein Thema von ferby · begonnen am 20. Aug 2004 · letzter Beitrag vom 20. Aug 2004
Antwort Antwort
ferby

Registriert seit: 15. Aug 2004
Ort: Wien
841 Beiträge
 
Delphi 2010 Enterprise
 
#1

Alle Variabel Typen

  Alt 20. Aug 2004, 14:41
Hallo,

Kennt wer von euch eine Seite wo ich alle Variabel Typen die es gibt gut Beschriftet finde?
Ich verwende nur intger und string, nur mir wurde gesagt das ich, wenn ich weiß das eine integer Variabel z.B: nur eine Stelle hat, das ich nicht intger verwenden soll, da das Programm langsamer wird.
  Mit Zitat antworten Zitat
Benutzerbild von Nikolas
Nikolas

Registriert seit: 28. Jul 2003
1.528 Beiträge
 
Delphi 2005 Personal
 
#2

Re: Alle Variabel Typen

  Alt 20. Aug 2004, 14:45
Wenn du Variablen meinst: Einfach mal Interger und real markieren und F1 drücken, da gibt's eine Liste mit allen möglichen Ganzzahl oder Kommazahlen, mit Wertebereich und Bit-Länge. (Einen Integer-Variable für einen Ziffer gibts nicht (ausser Bollean (1 oder 0)); das Kleinste ist ein Byte (0-256);
Erwarte das Beste und bereite dich auf das Schlimmste vor.
  Mit Zitat antworten Zitat
ferby

Registriert seit: 15. Aug 2004
Ort: Wien
841 Beiträge
 
Delphi 2010 Enterprise
 
#3

Re: Alle Variabel Typen

  Alt 20. Aug 2004, 14:51
Hallo,

Danke, wird das Programm dan wirklich schneller wenn man statt integer byte verwendet?
  Mit Zitat antworten Zitat
Benutzerbild von Nikolas
Nikolas

Registriert seit: 28. Jul 2003
1.528 Beiträge
 
Delphi 2005 Personal
 
#4

Re: Alle Variabel Typen

  Alt 20. Aug 2004, 14:55
Der Speicherplatz wird sicher geringer und es dauert sicher kürzer ein Byte zu laden als einen Interger aus 30 Byte (???(
Erwarte das Beste und bereite dich auf das Schlimmste vor.
  Mit Zitat antworten Zitat
Chewie

Registriert seit: 10. Jun 2002
Ort: Deidesheim
2.886 Beiträge
 
Turbo Delphi für Win32
 
#5

Re: Alle Variabel Typen

  Alt 20. Aug 2004, 14:58
Zitat von ferby:
Hallo,

Danke, wird das Programm dan wirklich schneller wenn man statt integer byte verwendet?
Es braucht weniger Speicherplatz. Aber schneller? OK, es dauert etwas kürzer, bis das Programm geladen ist, aber danach ist es höchstens genauso schnell, eher etwas langsamer.
Martin Leim
Egal wie dumm man selbst ist, es gibt immer andere, die noch dümmer sind
  Mit Zitat antworten Zitat
Benutzerbild von dizzy
dizzy

Registriert seit: 26. Nov 2003
Ort: Lünen
1.932 Beiträge
 
Delphi 7 Enterprise
 
#6

Re: Alle Variabel Typen

  Alt 20. Aug 2004, 18:28
Zum Thema "schneller":

Hab gerade mal ein Testproggy geschrieben, in dem mit allen Datentypen eine simple Addition+Zuweisung abläuft, in einem Thread mit Priorität = tpTimeCritical; Messmethode = GetTickCount; Berechnungen pro Typ = 2.000.000.000

var3 := var1 + var2;
wobei var1 = 1 und var2 = 2

Code:
ShortInt:  3125 ms
SmallInt:  3157 ms
LongInt :  2422 ms
Integer :  3125 ms

Byte   :  3125 ms
Word   :  3125 ms
LongWord:  3188 ms
DWord  :  3125 ms
Cardinal:  2437 ms

Int64   :  4375 ms

Single :  3359 ms
Real48  : 100016 ms
Double :  5109 ms
Comp   :  5282 ms
Currency:  5328 ms
Extended: 15625 ms
=> Ob nun Byte oder Integer ist sch****egal, da eh auf aktuellen CPUs mit 32 Bit gerechnet wird!
Interessant finde ich hingegen, dass ein LongInt doch deutlich schneller ist als ein Integer, obwohl sie laut in D7 identisch sein

LongWord und DWord haben ein ähnliches Verhältnis zueinander, und brauchen auch fast gleich lange.

Ganz hervorragend find ich ja Real48 , und dass Extended so langsam im Vergleich zu Double ist, hätte ich nicht gedacht. Int64 dagegen ist ja sogar recht fix: Tatsächlich nur eine Verdopplung des Aufwandes, wie man es vermuten würde. Single->Double dagegen nicht mehr verdoppelt, aber das mag daran liegen, dass die FPU eh auf 64 Bit angelegt ist, und Double keine Verdopplung der in der Architektur vorgesehenen Bitzahl darstellt, sondern im Gegenteil Single eine Halbierung. Der Aufwand hätte imho sogar gleich sein müssen, aber so wie ich die IA-32 Specs verstanden habe hat die FPU für Single-Werte einen eigenen Modus. Daher wohl kein 1:2-Verhältnis.

Tja, viel gelabert, und gleich noch eine Tabelle mit (fast) allen einfachen Datentypen geliefert... (Real fehlt; habbich vergessen. Sollte mit Double gleich sein, aber das ist ja scheinbar nicht zwangsläufig so (vgl. LongInt->Integer)).

gruss,
dizzy


\\edit: Mit diesem Post bin ich in den erlauchten Kreis der Excellent-Member aufgestiegen. Die stellen hier ja die kleinste Gruppe dar *froi*
Fabian K.
INSERT INTO HandVonFreundin SELECT * FROM Himmel
  Mit Zitat antworten Zitat
Chewie

Registriert seit: 10. Jun 2002
Ort: Deidesheim
2.886 Beiträge
 
Turbo Delphi für Win32
 
#7

Re: Alle Variabel Typen

  Alt 20. Aug 2004, 18:49
Lass den Test ein paar mal wiederholen. Insbesondere den großen Unterschied zwischen Longint und Integer halte ich für Zufall.
Martin Leim
Egal wie dumm man selbst ist, es gibt immer andere, die noch dümmer sind
  Mit Zitat antworten Zitat
Benutzerbild von dizzy
dizzy

Registriert seit: 26. Nov 2003
Ort: Lünen
1.932 Beiträge
 
Delphi 7 Enterprise
 
#8

Re: Alle Variabel Typen

  Alt 20. Aug 2004, 18:52
Hatte ihn erst ein paar Mal ohne extra Thread laufen, und die Differenzen waren schon nicht ohne. Aber mit Thread (TimeCritical) hab ich konstant für jedes Mal Starten (ca. 10 Mal) diese Werte bekommen (mit +/- ~50ms Abweichungen). Und da 2 Milliarden Durchläufe pro Variable sind, halte ich die Unterschiede für mehr als nur einen Messfehler.
Fabian K.
INSERT INTO HandVonFreundin SELECT * FROM Himmel
  Mit Zitat antworten Zitat
Chewie

Registriert seit: 10. Jun 2002
Ort: Deidesheim
2.886 Beiträge
 
Turbo Delphi für Win32
 
#9

Re: Alle Variabel Typen

  Alt 20. Aug 2004, 18:53
Hm, überrascht mich schon..
Martin Leim
Egal wie dumm man selbst ist, es gibt immer andere, die noch dümmer sind
  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 14:58 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