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!
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?