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 

Dieses Thema hat akzeptierte Lösungen:

Queued State Machine: IDLE Optimierung



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!

13.02.2017, 14:31
Beitrag #1

ALuehmann Offline
LVF-Grünschnabel
*


Beiträge: 10
Registriert seit: Oct 2016

2014
2006
EN



Queued State Machine: IDLE Optimierung
Hallo liebes Forum,

ich habe eine recht komplexe Queued State Machine (QSM) für Kontrolle und Data-Logging von selbtgebauter Hardware aufgebaut - und versuche diese gerade bezgl. Rechnerauslastung zu optimieren.

Die QSM befindet sich, wenn keine Events/Daten eingehen, im IDLE modus, wo der nächste IDLE state in die queue geschoben wird.
Derzeit habe ich da keine wait/tick counter drin, d.h. es werden maximal schnell idle states erzeugt und abgerufen. Das ist natürlich quatsch.

Ich frage mich nun lediglich, welche timing funktion ich am besten verwende, weil ich nicht weiß, wie diese interne gehandabt werden:
eine "wait until next ms multiple" mit z.B. 10 ms könnte ich in den idle state einbauen.
Nur weiß ich nicht, ob dieses "wait" der _delay funktion auf einem µC gleichkommt (und im prinzip auch nur den prozessor Idlen lässt) - oder welche timing funktionen tatsächlich Betriebssystem Timer verwenden - und zwischendurch die Ressourcen freigeben. Oder tun das alle?

Ich freue mich über jegliche Tips, was zu verwenden die beste Idee ist!
LG
Alex
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
13.02.2017, 14:50
Beitrag #2

GerdW Offline
______________
LVF-Team

Beiträge: 17.469
Registriert seit: May 2009

LV2021
1995
DE_EN

10×××
Deutschland
RE: Queued State Machine: IDLE Optimierung

Akzeptierte Lösung

Hallo Alex,

Zitat:und im prinzip auch nur den prozessor Idlen lässt
Nein, dem ist nicht so!

Wait(UntilNextMultple) geben beide die CPU frei. Selbst mit einem Wait(0) sorgst du schon für das Freigeben der CPU - wenn auch nur für einen sehr kurzen Moment…
(Das gleiche gilt dann auch für die TimeOuts an diversen Funktionen wie QueueRead oder WaitOnNotification.)

Zitat:Ich frage mich nun lediglich, welche timing funktion ich am besten verwende
Wieso überhaupt andauernd "idle"-States aufrufen? Warum nicht einfach auf den nächsten "sinnvollen" State warten?

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
13.02.2017, 14:52
Beitrag #3

ALuehmann Offline
LVF-Grünschnabel
*


Beiträge: 10
Registriert seit: Oct 2016

2014
2006
EN



RE: Queued State Machine: IDLE Optimierung
Hallo Gerd,
danke!

(13.02.2017 14:50 )GerdW schrieb:  Wieso überhaupt andauernd "idle"-States aufrufen? Warum nicht einfach auf den nächsten "sinnvollen" State warten?

Weil ich im IDLE state auch prüfe ob neue Daten am COM Port anliegen. Smile

Viele Grüße
Alex
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
14.02.2017, 14:00
Beitrag #4

HVo Offline
Erbsenzähler
*


Beiträge: 42
Registriert seit: Oct 2008

>3.1 :)
1992
EN

38000
Deutschland
RE: Queued State Machine: IDLE Optimierung
Sind dafür nicht die Events da?
Ansonsten kann man ja grob abschätzen wie lange die ersten 11 bits (oder die erste vollständige Meldung) über den COM-Port brauchen, und das als wait einfügen.

Tschuess
Henrik

---
'The number you have dialed is imaginary, please turn your phone 90° and dial again....'
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Antwort schreiben 


Möglicherweise verwandte Themen...
Themen Verfasser Antworten Views Letzter Beitrag
  Machine learning Hubert R. 3 2.522 29.08.2023 10:10
Letzter Beitrag: Hubert R.
  Eigenversuch einer ComboBox - Optimierung und Kritik gesucht TpunktN 2 2.454 30.05.2023 07:56
Letzter Beitrag: TpunktN
  Programm beenden State Machine simcum 3 3.432 17.10.2020 20:57
Letzter Beitrag: BNT
  Nachträgliche Optimierung von funktionierendem Prgramm Tyll 10 7.074 16.03.2017 14:11
Letzter Beitrag: Tyll
  State machine und Typdefinition meta_ir 4 4.450 09.01.2017 12:47
Letzter Beitrag: meta_ir
Question Frage zu "queued state machine" Architektur joptimus 4 6.011 05.08.2016 14:34
Letzter Beitrag: joptimus

Gehe zu: