Entwickler-Ecke
IO, XML und Registry - SerialPort sehr langsam und hohe CPU-Last
Kouran - Di 25.03.08 20:17
Titel: SerialPort sehr langsam und hohe CPU-Last
Hallo,
ich schreibe an einem Steuerframework für Roboter, das über den SerialPort mit einem Mikrocontroller reden soll. Damit alles funktioniert erwartet der Mikrocontroller alle 40ms (HIerfür habe ich bereits einen Multimedia Timer benutzen müssen, da der normale C# Timer im ms Sekungendbereich doch eher mal ungenau vorgeht) ein Packet mit neuen Informationen. Sehr wichtig ist dabei die Regelmäßigkeit. Es ist nun so, daß sobald das Kommunikationsmodul angeschalten wird, die CPU Last auf über 40% hochschnellt, was für eine normale Kommunikation nicht akzeptabel ist, da noch andere Prozessorintensive Threads währendher laufen müssen. Ich habe alles beibehalten und das SerialPort.Write/Read jeweils auskommentiert, was die CPU Last auf akzeptable 4% gedrückt hat.
Die Last ist nicht das Hauptproblem, das Hauptproblem ist, daß die Read/Write Operationen nicht immer zuverlässig um 40ms Takt(oder eben schneller) fertig werden. Vom Mikrocontorller her sollte das trotzdem möglich sein, da ein C++ Framework bereits existiert, daß im 12ms Takt Daten mit dem Mikrocontroller austauscht.
Sind die differenzen in Sachen Performance wirklich so groß zwischen dem .NET SerialPort und dem WindowsAPI Port?
Hat sonst noch jemand erfahrungen mit dem SerialPort gemacht, bzw. auch Performance Probleme oder Lösungsideen?
Vielen Dank schonmal im vorraus,
Tom
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!