AGB  ·  Datenschutz  ·  Impressum  







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

Ringpuffer Bibliothek veröffentlicht

Ein Thema von TurboMagic · begonnen am 23. Aug 2020 · letzter Beitrag vom 23. Jan 2022
 
Rollo62

Registriert seit: 15. Mär 2007
4.164 Beiträge
 
Delphi 12 Athens
 
#25

AW: Ringpuffer Bibliothek veröffentlicht

  Alt 8. Jan 2022, 11:10
Und, welchen Ansatz benutzt du nun?
Wie schon gesagt, basierend auf TMemoryStream, mit Interlocked Pointern und Flags zur möglichst effizienten Kontrolle der aktuellen Start/End Pointer, und zur Minimierung von echten CriticalSections.
Ich brauche das im Moment um zufällig eingehende TBytes Sendungen mit variabler Länge, von regelmäßigen Bearbeitungen , welche diese TBytes Daten abholen und verarbeiten sicher zu entkoppeln.
Also es kann gerade etwas abgeholt werden, wenn zufällig neue Daten reinkommen, das muss abgesichert werden.
Das basiert allerdings auf linearen Speicher und ist auf Byte-Stream-Weise Ein- und Ausgabe optimiert,
also ist es mit dem universellen Ringbuffer in dem man Alles reinwerfen kann nicht ganz kompatibel.
( Oder zumindest wäre ein direkter Vergleich etwas unfair ).

Ich könnte auch einen FIFO-artigen, linearen Speicher dafür nehmen, müsste dann aber verhindern dass der unendlich anwächst, deshalb hatte ich RingBuffer eingesetzt.
In meinem Fall wäre das aber sicher auch mit einem längenbegrentzen FIFO möglich,
vom RingBuffer erhoffe ich mir allerdings unnötiges Umkopieren/Löschen von Bytes zu verhindern.
Ein Ringbuffer muss ja nicht entsorgt werden, sondern der StartPointer (Integer) läuft einfach bis zum EntPointer (Integer), und die alten Daten bleiben einfach unangetastet im Ring, das kostet fast gar nichts.

Trotzdem checke ich immer mal wieder wie sich Alternativen dazu verhalten und ob es gute Ideen dazu gibt.
  Mit Zitat antworten Zitat
 


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 06:45 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz