amiga-news ENGLISH VERSION
.
Links| Forum| Kommentare| News melden
.
Chat| Umfragen| Newsticker| Archiv
.

amiga-news.de Forum > Programmierung > strings verwalten [ - Suche - Neue Beiträge - Registrieren - Login - ]

-1- [ - Beitrag schreiben - ]

19.01.2012, 13:33 Uhr

AGSzabo
Posts: 1663
Nutzer
Hallo,

meine ListView allokiert derzeit jeden Text aus jeder Zeile und jeder Spalte extra mit AllocVec(). Da gibts doch schnell Fragmentierung, oder? Was wäre eine gut Lösung? Ein MemPool? Man bedenke, dass viele Strings kürzer sein könnten als der Platz der dabei für exec weg ginge.

ags
--
Author of Open eXternal User Interfaces, eXternal Format Rippers and the Book "Torakosmos". Developing with E-UAE on an Ubuntu dualcore system.

[ Dieser Beitrag wurde von AGSzabo am 19.01.2012 um 13:35 Uhr geändert. ]

[ Dieser Beitrag wurde von AGSzabo am 19.01.2012 um 13:35 Uhr geändert. ]

[ - Antworten - Zitieren - Direktlink - ]

22.01.2012, 18:12 Uhr

inq
Posts: 445
Nutzer
Zitat:
Original von AGSzabo:
meine ListView allokiert derzeit jeden Text aus jeder Zeile und jeder Spalte extra mit AllocVec(). Da gibts doch schnell Fragmentierung, oder? Was wäre eine gut Lösung? Ein MemPool? Man bedenke, dass viele Strings kürzer sein könnten als der Platz der dabei für exec weg ginge.


Eine Alternative wäre, du allozierst einen größeren Block, der die derzeitigen Listen-Einträge allesamt enthält und schubst nur die Pointer (Anfang/Ende) in der Liste rum. Bei Überlauf dieses Speicherblocks müßtest du dir natürlich über Neu-Allozierung/Garbage-Collection Gedanken machen.

Insgesammt aber ist Speicher(de-)fragmentierung ein Problem, mit dem sich eigentlich nur das OS beschäftigen sollte. Darum auch die Mempools.

Gruß
inq

[ - Antworten - Zitieren - Direktlink - ]


-1- [ - Beitrag schreiben - ]


amiga-news.de Forum > Programmierung > strings verwalten [ - Suche - Neue Beiträge - Registrieren - Login - ]


.
Impressum | Datenschutzerklärung | Netiquette | Werbung | Kontakt
Copyright © 1998-2024 by amiga-news.de - alle Rechte vorbehalten.
.