AGB  ·  Datenschutz  ·  Impressum  







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

Array-Delete Funktion

Ein Thema von olee · begonnen am 11. Nov 2008 · letzter Beitrag vom 12. Nov 2008
Antwort Antwort
Seite 3 von 3     123   
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.171 Beiträge
 
Delphi 12 Athens
 
#21

Re: Array-Delete Funktion

  Alt 12. Nov 2008, 15:18
Zitat von Medium:
Aber das "schlimmste" ist eigentlich, dass man sich die Performance durch potentiell gewaltigem Speicherverbrauch im Vergleich zur Nutzdatenmenge erkauft.
Notfalls bastelt man sich dann einfach eine eigene "SetLength", welche die Arraygröße in größeren Schritten ändert.
> performanter und dennoch nicht all zuviel Overhead
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
alzaimar
(Moderator)

Registriert seit: 6. Mai 2005
Ort: Berlin
4.956 Beiträge
 
Delphi 2007 Enterprise
 
#22

Re: Array-Delete Funktion

  Alt 12. Nov 2008, 15:50
Zitat von olee:
Ich möchte keinesfalls eine Klasse verwenden!!
Das ist sehr dumm. Oder sagen wir es freundlicher: Kurzsichtig.

Zitat von olee:
1.) Ich habe dieses Array sehr oft (Waypoints in ner Map also ca. 200 mal)
Das ist nicht oft.

Zitat von olee:
2.) Ich möchte nicht immer die TList / TObjectList neu erstellen.
Warum nicht?

Zitat von olee:
--> mir gehts nur um die Performance eines Codes, um ein Element aus nem Array zu löschen.
Nun ja, es kommt doch auch darauf an, was Du sonst noch alles mit deiner Liste anstellen willst. Irgendwie müssen die Daten ja auch rein. Und suchen willst Du vielleicht auch noch.

Das Löschen würde dann z.B. noch schneller gehen, wenn du das Array an der Stelle einfach mit 'nil' (bw. mit einem wie auch immer gearteten Platzhalter) belegst. Klar, iterieren, suchen, einfügen sind dann etwas langsamer, aber das *löschen* ist dann eigentlich optimal schnell.

Und lass das dumme 'Klassen sind langsam'. In erster Linie dürfte das dein Code bzw. die Algorithmen sein, die Du verwendest. Ich an deiner Stelle würde die von Dir zu optimierende Liste als Klasse implementieren und erstmal irgendwelche halbwegs performanten und vor allen Dingen robusten Methoden implementieren. Wenn dann dein ganzes Konstrukt stabil ist, kannst Duja immer noch die Liste gegen eine für deine Belange besser geeignetere eintauschen.

Wenn es nicht gerade um generische Verfahren geht, bei denen wirklich an der Basis rumgerechnet wird (Compiler, Scanner, Bildverarbeitungsalgorithmen, vielleicht auch ein Memorymanager wären solche Kandidaten), würde ich grundsätzlich einen OOP-Ansatz wählen und mir nur um die Algorithmen und deren Aufwand Gedanken machen, und nicht um Byte-Rumgeschubse auf unterster Ebene.

Wenn Du vielleicht dein 'Problem' bzw. das, was Du insgesamt vorhast, einmal näher erklären würdest, könnte man Dir vermutlich eine geeignete Listen-Klasse (Pfui!) vorschlagen, die die von Dir gewünschten Operationen sehr schnell implementiert.
"Wenn ist das Nunstruck git und Slotermeyer? Ja! Beiherhund das Oder die Flipperwaldt gersput!"
(Monty Python "Joke Warefare")
  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 00: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