Re: Verständnissfrage - Rechenzeit / Threads Kategorie: CC2-Unit & Appl.Board / CC2-Station (von André H. - 8.07.2004 11:57) | ||
Als Antwort auf Verständnissfrage - Rechenzeit / Threads von Rene Forster - 7.07.2004 21:55 | ||
| ||
Hallo Rene, > während des Programmablaufes kann man ja bekannt die Rechenzeit einzelner Threads > beeinflussen. Ohne Veränderung habe alle laufende Threads ja den Wert 32. > > Hier die Frage : > > Was bedeutet ein Wert 32 in Zeit ? > Welche Werte sind einstellbar ? > Wert 0 ist klar - der Thread macht nix mehr, aber wo ist die Obergrenze? Mario hat es zwar schon geschrieben, jedoch nocheinmal etrwas genauer: Die Threadpriorität bestimmt die Anzahl an VM-Instruktionen (VM-Codes), die maximal an einem Stück ausgeführt werden, bevor es zu einem Threadwechsel kommt. x= y + z Diese Zeile besteht z.B. aus 4 VM-Instruktionen: Lade den Inhalt von Variable y auf den Stack. Lade den Inhalt von Variable z auf den Stack. Addiere die letzen beiden Stackwerte und schreibe das Ergebnis auf den Stack Hole den letzten Wert von Stach und speichere diesen in Variable x. Die Anzahl der VM-Instruktionen pro "Threadlauf" kann aber auch geringer sein, als mit run angegeben, z.B. wenn der Thread durch ein wait, sleep oder yield vorzeitig ein Threadwechsel verursacht wird. Auch ein starten eines anderen Thread mit run verursacht einen Threadwechsel und gibt zunächst dem gestartetem Thread Rechenzeit. Die Zeit, die eine VM-Intruktion benötigt, ist sehr unterschiedlich. So benötigt z.B. das Pushen eines Wertes auf den Stack am wenigsten Zeit, ader das Lesen eines AD-Ports hingegen sehr viel. Die genauen Zeiten habe ich einmal gemessen, jedoch gerade nicht im Kopf. Ich hatte aber dazu schonmal ein paar Zahlen im Forum gepostet. Ich finde es aber gerade nicht. Einfach einmal suchen. :-) Vieles dazu steht auch im Handbuch. (u.A. auch der Maximalwert) MfG André H. Antworten bitte nur ins Forum! Fragen per EMail auf Forum-Postings werden nicht beantwortet! Das macht meine Heizung gerade | ||
Antwort schreiben Antworten: |