Delphi-PRAXiS
Seite 2 von 6     12 34     Letzte »    

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Float in zwei Integer zerlegen (https://www.delphipraxis.net/185560-float-zwei-integer-zerlegen.html)

Shark99 19. Jun 2015 20:34

AW: Float in zwei Integer zerlegen
 
Zitat:

Zitat von Dejan Vu (Beitrag 1305815)
Zitat:

Zitat von Shark99 (Beitrag 1305808)
...Es kostet Performance die hier sehr wichtig ist.

Wie kann denn das sein? TListView und Performance? Entschuldige, aber bist Du Dir da ganz sicher? Wir reden hier von einem Windows Control. Da passt das mit dieser 'Performance' einfach nicht.

Was willst Du eigentlich machen?

Ich habe ein dynamisches Array mit etwa 100k records. In einem Listview werden max 1000 davon angezeigt.

Zitat:

@Dalai: Do speicherst keinen Zeiger auf ein TDateTime, sondern Du kopierst die obersten (untersten, je nach Blickwinkel) 4 Bytes des TDateTime in einen 32-bit Wert. Kleiner Unterschied...
Meine Befürchtung ist eben dass ein TDateTime, also ein double 8 Bytes belegt, wenn ich das in einen 4 Byte Pointer reinquetsche können Daten verloren gehen.

Shark99 19. Jun 2015 20:35

AW: Float in zwei Integer zerlegen
 
Zitat:

Zitat von Dalai (Beitrag 1305813)
Zitat:

Zitat von Shark99 (Beitrag 1305811)
Hab aber wie gesagt Bedenken.

Ich glaube nicht, dass das ein Problem ist, denn es wird da nur ein Pointer auf etwas - hier TDateTime - gespeichert. Oder wie denkst du, funktioniert das bei Objekten, die ewig lange Strings enthalten können, die weit größer als 4 Byte sind?

MfG Dalai

Ein String ist ein 4 Byte Pointer und passt somit in einen "normalen" Pointer. Ein Double hat 8 Bytes.

Luckie 19. Jun 2015 20:43

AW: Float in zwei Integer zerlegen
 
Sag mal was leuigt dem eigentlich eien Datenstruktur zu Grunde? Wo kommen die anderen Daten her, die im Listview angezeigt werden? Da muss es doch auch eien Datenstruktur geben.

Shark99 19. Jun 2015 20:45

AW: Float in zwei Integer zerlegen
 
Wie ich schrieb, ein dynamisches Array von Records, im Record selbst ist TDateTime (index) und ein string.

Luckie 19. Jun 2015 20:51

AW: Float in zwei Integer zerlegen
 
Mit Objekten wäre es einfacher.

Von wie vielen Datensätzen reden wir und warum ist die Performance so wichtig?

Shark99 19. Jun 2015 20:57

AW: Float in zwei Integer zerlegen
 
Es wäre einfacher, aber hab derzeit 100k Datensätze und es können mehr werden. Habs mit TList und Objekten getestet. War etwa 2-3 mal langsamer.

Dalai 19. Jun 2015 21:02

AW: Float in zwei Integer zerlegen
 
Die Frage ist: Was, also welche Operation, war langsamer? Lesen? Objekte erzeugen? Verschieben? Sortieren? Löschen?

MfG Dalai

Shark99 19. Jun 2015 21:05

AW: Float in zwei Integer zerlegen
 
Im Prinzip war alles langsamer. Verwende TDynArray, welche in Gegensatz zu TList sehr optimiert ist.

BUG 19. Jun 2015 21:06

AW: Float in zwei Integer zerlegen
 
Kann sein das ich dich falsch verstanden habe, aber wieso speicherst du in dem TListView-Zeiger nicht einfach den Zeiger auf die eigentliche Datenstruktur in dem Array? Das könnte zwar Probleme geben, wenn du die Größe des Arrays änderst (Reallokation), aber ansonsten solltest du damit glücklich werden.

Shark99 19. Jun 2015 21:08

AW: Float in zwei Integer zerlegen
 
Weil das Array aus Records und nicht aus Objekten besteht.


Alle Zeitangaben in WEZ +1. Es ist jetzt 05:23 Uhr.
Seite 2 von 6     12 34     Letzte »    

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