Hallo !
Ich habe eine Anlage mit ca 5000 Datenpunkten die in einem 2d Array (TAGID; Wert) dargestellt sind.
Vom Netzwerk empfange ich ca 30 Telegramme/Sekunde die in die Tabelle geschrieben werden.
Problem:
Wenn ich das Array jedesmal durchsuche dauert dies sehr lange und die CPU last steigt enorm.
Gibt es einen "Mechanismus", der das löst ?
Hat jemand ein Beispiel ?
Danke im Voraus
Friedrich
' schrieb:Ich habe eine Anlage mit ca 5000 Datenpunkten die in einem 2d Array (TAGID; Wert) dargestellt sind.
Vom Netzwerk empfange ich ca 30 Telegramme/Sekunde die in die Tabelle geschrieben werden.
Problem:
Wenn ich das Array jedesmal durchsuche dauert dies sehr lange und die CPU last steigt enorm.
Gibt es einen "Mechanismus", der das löst ?
Sorry, Aber ich verstehe die Aufgabenstellung nicht.
Wonach suchst Du und was soll der Mechanismus lösen?
Hi,
genau, was ist die eigentliche Aufgabe?
Abgesehen davon: Warum durchsuchst du jedesmal das ganze Array (zu welchem Zweck auch immer)? Reicht es nicht aus, deine neuen Daten zu durchsuchen? Wenn du vorher schon was gefunden hast, wird das doch im Array immer noch da sein und muss nicht neu gefunden werden, oder?
Tipp: Array-Operationen sind generell sehr rechenintensiv! Also am besten so weit wie möglich vermeiden!
Gruss
Achim
Hallo !
Ich hoffe, daß ich es diesemal verständlich erkläre was ich will.
Es soll eine Anlage mit ca 5000 Datenpunkten ( z.B Stromzähler, Wasserzähler ....) erstellt werden.
Jede Sekunde empfange ich über UDP ca 30 neue Werte von den Zählern.
In meinem Array sind alle Zähler ( ca 10 Datenpunkte je Zähler) dargestellt.
Problem:
Wird ein neues Telegramm empfangen und die Zähleridentifikation ist am Ende des Arrays deffiniert
muß die ganze Tabelle durchsucht werden.
Bei 30 Telegrammen je Sekunde ( alle sind am fast Ende des Arrays deffiniert) sind das
30 x ca 4900 = 147.000 Datenpunkte die verglichen werden.
Ich suche Eine Lösung, die schnell ist und die CPU nicht belastet.
Welchen Denkfehler habe ich ?
lg
Friedrich
' schrieb:Hallo !
Ich hoffe, daß ich es diesemal verständlich erkläre was ich will.
Es soll eine Anlage mit ca 5000 Datenpunkten ( z.B Stromzähler, Wasserzähler ....) erstellt werden.
klingt irgendwie nach einem interessanten Problem, aber ich hab nicht die leiseste Ahnung, was du machen willst (ok, das mit dem Array hab ich begriffen). Ist es möglich mal ein Beispiel zu posten?
Warum muss das Array durchsucht werden? Warum kann man die Daten nicht einfach hinten dran hängen? Müssen die Daten an eine bestimmte Position im Array? --> das würde bedeuten, dein Array hat eine Struktur (z.B. in Spalte 1 Stehen die Werte von Druck, in Spalte 2, die Werte von Spannung ...usw) => wie sieht die Struktur aus? etc pp ...
Grüße
CB
Hallo i2dx !
Ich denke du hast es verstanden, was ich will.
Die Daten müssen an eine bestimmte Position im Array.
Im Anhang ist ein Beispiel wie die Struktur des Arrays aussieht.
lg
Friedrich