AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

TPoint nicht verwenden (wg. packed)?

Ein Thema von Cöster · begonnen am 5. Dez 2006 · letzter Beitrag vom 5. Dez 2006
Antwort Antwort
Cöster

Registriert seit: 6. Jun 2006
589 Beiträge
 
Turbo Delphi für Win32
 
#1

TPoint nicht verwenden (wg. packed)?

  Alt 5. Dez 2006, 18:07
Hi!

Sollte man, wenn es um Geschwindigkeit geht, nicht den Typ TPoint benutzen? Denn er ist ja als packed record deklariert und darauf ist der Zugriff ja langsamer. Sollte man sich deswegen einen eigenen Typ (TMyPoint oder so) bauen, dessen einziger Unterschied zum TPoint ist, dass er nicht packed ist?
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#2

Re: TPoint nicht verwenden (wg. packed)?

  Alt 5. Dez 2006, 18:10
packed ist nicht zwangsläufig schneller. Wenn die Typen im Record die richtige Größe haben macht das keinen Unterschied.
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
Benutzerbild von 3_of_8
3_of_8

Registriert seit: 22. Mär 2005
Ort: Dingolfing
4.129 Beiträge
 
Turbo Delphi für Win32
 
#3

Re: TPoint nicht verwenden (wg. packed)?

  Alt 5. Dez 2006, 18:12
packed ist wenn dann langsamer, SirThornberry, aber es macht halt wirklich so gut wie keinen Unterschied.
Manuel Eberl
„The trouble with having an open mind, of course, is that people will insist on coming along and trying to put things in it.“
- Terry Pratchett
  Mit Zitat antworten Zitat
Cöster

Registriert seit: 6. Jun 2006
589 Beiträge
 
Turbo Delphi für Win32
 
#4

Re: TPoint nicht verwenden (wg. packed)?

  Alt 5. Dez 2006, 18:13
Zitat von SirThornberry:
packed ist nicht zwangsläufig schneller. Wenn die Typen im Record die richtige Größe haben macht das keinen Unterschied.
Langsamer meinst du, oder? D.h. TPoint wird durch packed nicht ausgebremst, weil X und Y beide vom Typ Integer sind?

[Edit nach nicht gekommenen r. Kasten]
@3_of_8: so gut wie keinen oder keinen?[/Edit nach nicht gekommenen r. Kasten]
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#5

Re: TPoint nicht verwenden (wg. packed)?

  Alt 5. Dez 2006, 18:16
ich meinte langsamer
Genau, da beide vom Typ Integer sind würde das ganze ohne packed im Speicher ganz genau so aussehen weil es auch an den 32bit ausgerichtet wird.
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
Benutzerbild von 3_of_8
3_of_8

Registriert seit: 22. Mär 2005
Ort: Dingolfing
4.129 Beiträge
 
Turbo Delphi für Win32
 
#6

Re: TPoint nicht verwenden (wg. packed)?

  Alt 5. Dez 2006, 18:17
Wenn es Word wären doch egtl. auch, man kann doch AFAIK mit der gleichen Anzahl Assembler-Befehle auf Words zugreifen wie auf Integer.
Manuel Eberl
„The trouble with having an open mind, of course, is that people will insist on coming along and trying to put things in it.“
- Terry Pratchett
  Mit Zitat antworten Zitat
Muetze1
(Gast)

n/a Beiträge
 
#7

Re: TPoint nicht verwenden (wg. packed)?

  Alt 5. Dez 2006, 18:23
Zitat von 3_of_8:
Wenn es Word wären doch egtl. auch, man kann doch AFAIK mit der gleichen Anzahl Assembler-Befehle auf Words zugreifen wie auf Integer.
Das ist ja nicht alles. Ein Word sind nur 16 Bit. Der Adressbus ist im Normalfall 32 Bit gross und das ist die kleinste Granularität, welche in die CPU reinkommt. D.h. wenn du ein Word haben willst, wird trotzdem aus dem Speicher ein 32 Bit Wert angefordert und dann wird das gesucht Word herausgesucht. Wenn du nun einen Packed Record hast und das Word im oberen Teil liegt, dann wird ein 32 Bit Wert gelesen und dann müssen die oberen 16 Bit noch nach unten gebracht werden bevor sie dann benutzt bzw. in der CPU abgelegt werden können.
  Mit Zitat antworten Zitat
Cöster

Registriert seit: 6. Jun 2006
589 Beiträge
 
Turbo Delphi für Win32
 
#8

Re: TPoint nicht verwenden (wg. packed)?

  Alt 5. Dez 2006, 18:23
Zitat von 3_of_8:
Wenn es Word wären doch egtl. auch, man kann doch AFAIK mit der gleichen Anzahl Assembler-Befehle auf Words zugreifen wie auf Integer.
Das hat SirThornberrys Antwort doch inbegriffen. Solange beide vom gleichen Typen sind. Wenn jetzt jedoch z.B. X ein Integer wäre und Y Word, wahrscheinlich nicht.
  Mit Zitat antworten Zitat
Benutzerbild von 3_of_8
3_of_8

Registriert seit: 22. Mär 2005
Ort: Dingolfing
4.129 Beiträge
 
Turbo Delphi für Win32
 
#9

Re: TPoint nicht verwenden (wg. packed)?

  Alt 5. Dez 2006, 18:24
Dürfte aber auch nicht signifikant langsamer sein.
Manuel Eberl
„The trouble with having an open mind, of course, is that people will insist on coming along and trying to put things in it.“
- Terry Pratchett
  Mit Zitat antworten Zitat
Antwort Antwort

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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