INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.


Antwort schreiben 

TCP effizient lesen und parsen



Wenn dein Problem oder deine Frage geklärt worden ist, markiere den Beitrag als "Lösung",
indem du auf den "Lösung" Button rechts unter dem entsprechenden Beitrag klickst. Vielen Dank!

23.01.2015, 19:02
Beitrag #1

buechling Offline
LVF-Grünschnabel
*


Beiträge: 11
Registriert seit: Jan 2015

2013
2010
DE



TCP effizient lesen und parsen
Hallo,

ich habe ein Programm, dass Befehle von einem TCP-Port liest und möglichst schnell verarbeiten soll. Ich bekomme JSON-Strings von bis zu 1000 Byte Länge. Ich weiss nicht wieviele Strings hintereinander kommen. Nun mache ich es so: ich lese so lange Byte für Byte bis alle Klammern auf "{" durch eine Klammer zu "}" geschlossen wurden. Dann starte ich die Verarbeitung und kann später erneut dieses VI aufrufen, was eine Zeile ausliest. Jedoch benötigt dieses Verfahren eine Dauer von manchmal bis zu 150ms.. ( meistens ca 5ms - 10ms ) .. das ist zu lang für meine Anwendung..

Ich verwende eine Art Zustandsautomaten, der für jedes { die Schieberegister-Zahl um eins erhöht und für jedes { die Zahl um eins verringert. Ist die Zahl Null oder ist ein TCP-Error aufgetrteten ( der kein Timeout ist ), wird die Schleife beendet und der String ausgegeben.

Kann man das also irgendwie effizienter gestalten? oder kann es daran liegen dass der Server zu langsam sendet? Anbindung ist 100 Mbit.. Also eigentlich schnell genug.. ( 1 KB = 0,08ms )
ich bin schon von Strings auf String-Referenzen umgestiegen und habe dadurch ca 50% Zeit gespart.. Oder wäre es effizienter als Byte-Array? Ich lese Byte für Byte aus der TCP-Referenz, da ich ja ansonsten eventuell zu "weit" lese, und der Anfang vom nächsten String schon aus dem TCP Puffer genommen wurde.. Denkt ihr der ganze String-Kram kostet soviel Zeit oder ist es das ständige Ansprechen der TCP-Referenz?

viele Grüße,
Thomas


Angehängte Datei(en) Thumbnail(s)
   

13.0 .vi  read1Char.vi (Größe: 19,25 KB / Downloads: 186)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
30
Antwort schreiben 


Nachrichten in diesem Thema
TCP effizient lesen und parsen - buechling - 23.01.2015 19:02

Gehe zu: