LinkedList als FIFO

Für allgemeine Fragen zur Programmierung mit PureBasic.
SBond
Beiträge: 266
Registriert: 22.05.2013 20:35

LinkedList als FIFO

Beitrag von SBond »

Hi Leute,

ich habe nur mal eine allgemeine Frage zu LinkedList. Ist es sinnvoll diese als eine Art Schieberegister/Warteschlange zu verwenden?
In meinem Fall möchte ich ca. 80K Strukturen pro Sekunde verarbeiten. Jedes Struktur beinhaltet etwa 5 Elemente (Int, Float und Strings).

Ist dieses Vorhaben mit LinkedList (sinnvoll) realisierbar, oder gibt es etwas zu beachten?


viele Grüße,
SBond
41 6c 73 6f 20 77 65 6e 6e 20 64 75 20 73 6f 20 76 69 65 6c 20 4c 61 6e 67 65 77 65 69 6c 65 20 68 61 73 74 2c 20 64 61 6e 6e 20 6b 61 6e 6e 73 74 20 64 75 20 61 75 63 68 20 67 6c 65 69 63 68 20 7a 75 20 6d 69 72 20 6b 6f 6d 6d 65 6e 20 75 6e 64 20 61 62 77 61 73 63 68 65 6e 2e

:D
Benutzeravatar
NicTheQuick
Ein Admin
Beiträge: 8837
Registriert: 29.08.2004 20:20
Computerausstattung: Ryzen 7 5800X, 64 GB DDR4-3200
Ubuntu 24.04.2 LTS
GeForce RTX 3080 Ti
Wohnort: Saarbrücken

Re: LinkedList als FIFO

Beitrag von NicTheQuick »

Wenn es darum geht möglichst viel Geschwindigkeit heraus zu holen, dann sind Arrays immer noch die erste Wahl. Allerdings haben sie eben den Nachteil, dass sie von Anfang an eine bestimmte Größe haben (mal von Redim abgesehen, weil das hier nicht von Belang ist). Deswegen ist es wichtig zu wissen wie viele Objekte zur gleichen Zeit in der FIFO-Warteschlange existieren können. Wenn man weiß, dass es nie mehr als 100000 sein werden, dann erstellt man sich ein Array mit 100000 Elementen und merkt sich den Index zum Einfügen und Auslesen.

Wenn es nicht auf jede Mikrosekunde ankommt, dann reichen LinkedLists allerdings vollkommen aus.

Und wenn du die Warteschlange mit mehreren Threads nutzen willst, dann habe ich für dich hier noch ein Tutorial von mir: [PB] HowTo: ConcurrentQueue
SBond
Beiträge: 266
Registriert: 22.05.2013 20:35

Re: LinkedList als FIFO

Beitrag von SBond »

du gehst wohl auch nie schlafen ;)

vielen Dank für deinen Tipp :mrgreen:
An ein Array hatte ich auch zuerst gedacht.


viele Grüße,
SBond
41 6c 73 6f 20 77 65 6e 6e 20 64 75 20 73 6f 20 76 69 65 6c 20 4c 61 6e 67 65 77 65 69 6c 65 20 68 61 73 74 2c 20 64 61 6e 6e 20 6b 61 6e 6e 73 74 20 64 75 20 61 75 63 68 20 67 6c 65 69 63 68 20 7a 75 20 6d 69 72 20 6b 6f 6d 6d 65 6e 20 75 6e 64 20 61 62 77 61 73 63 68 65 6e 2e

:D
Antworten