Προς το περιεχόμενο

delphi7 και μεγάλο const array


smilefreeware

Προτεινόμενες αναρτήσεις

Τελικά άλλαξα το Memo με TStringList και τα items τα ένωσα ανά 5 ώστε τα 270.000 έγιναν 54.000.

 

Αν έχεις μεγάλες TStringLists μπορεί να δεις και την THashedStringList class για μεγαλύτερη ταχύτητα προσπέλασης των δεδομένων.

 

Μόνο προσοχή, διότι σε C/C++ Builder 6 (δεν ξέρω αν αυτό το πρόβλημα αφορά και την Delphi παρόμοιων εκδόσεων) η THashedStringList παρουσιάζει ορισμένα τεχνικά προβλήματα στο initilization της (VCL bug).

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Είπα μαμακία για TListItems. Ηθελα να πω TListView.

Το έχω χρησιμοποιήσει αρκετά αλλά όταν πάω να βάλω πολλά items (add) καθυστερεί πολύ. Και double buffering του έδωσα και Items.BeginUpdate / Items.EndUpdate και διάφορες πατέντες αλλά δεν. (για 20000-30000 items).

Εκτός αν υπάρχει ρουτίνα με copy mem και μπαίνει σφαίρα. (Δεν γνωρίζω)

 

Μερικές φορές παλαιότερα που είχα παίξει αρκετά γινόταν πολύ αργό και για κάποιο λόγο ξαφνικά έφτιαχνε. Μάλλον κάτι έπαιζε με τα WIN αλλά δεν το είχα πολυκαταλάβει. (Οταν λέω έφτιαχνε, δηλ καθυστερεί για πολλά items)

 

Μόνο προσοχή, διότι σε C/C++ Builder 6 (δεν ξέρω αν αυτό το πρόβλημα αφορά και την Delphi παρόμοιων εκδόσεων) η THashedStringList παρουσιάζει ορισμένα τεχνικά προβλήματα στο initilization της (VCL bug).

Γιατί το TStringLists τι μου έκανε !!! (Μιλάω για τώρα, έτυχε και τα είδα)

Πήγα να κάνω sort και κάποια items τα άλλαζε.

Τελικά χρησιμοποίησα qsort και δούλεψαν όλα όμορφα και ωραία.

(Θέλω να πιστεύω ότι κάτι εγώ δεν έκανα καλά με το TStringLists , αλλά πανάθεμάτο δεν είναι πρώτη φορά που το χρησιμοποιώ)

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

TListView: αν το κάνεις virtual όπως το λέω, δεν βάζεις κανένα item, οπότε και δεν αργεί καθόλου.

Απλά όταν θέλει να ζωγραφίσει ένα item στο ζητάει μέσα από το data event, δηλαδή το περισσότερο είναι να σου ζητήσει να του δώσεις 20-30 items που χωράνε στην οθόνη. Ε, προφανώς αυτό εκτελείται σε λίγα msec.

 

Έτσι έχεις και οικονομία μνήμης, αφού τα δεδομένα θα τα έχεις μόνο στην TStringList σου, δεν θα τα έχει και το control.

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

@Directx Εχεις pm

 

@alkisg Εφυγε το mail

 

Τελικά το qsort με 55.000 items σε 5 κολώνες πατώντας κάποια κολώνα κάνει sort Ascending or Descending σε περίπου 1 sec.

(celeron 1.8)

 

Πείραξα λιγάκι την qsort και έκανε sort ταυτόχρονα σε 2 πίνακες.

Δηλ. έκανε sort ston 1 πίνακα και ότι αλλαγές γίνονταν στον 1 γίνονταν και στον άλλο.

(Ιδέα από την Power Basic με την έκφραση tag array)

 

Από κάποιον Robert Zale που έφτιαξε την Power Basic και προηγουμένως αν ψάξει κανείς και την Turbo BAsic (Το ΕΧΕ) θα βρεί μέσα το

" TURBO BASIC/Copyright © 1987 by Borland International/All Rights Reserved RSZale "

Τον οποίο έχω πληρώσει αρκετά, έχω πάρει σχεδόν όλες τις εκδόσεις του. (και το φχαριστήθηκα).

Αυτά. (Γύρισα λίγο πίσω ...)

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Αρχειοθετημένο

Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.

  • Δημιουργία νέου...