Optimierung Offline Simulation: Unterschied zwischen den Versionen
Zur Navigation springen
Zur Suche springen
(→Lösung) |
(→Lösung) |
||
Zeile 18: | Zeile 18: | ||
= TODO = | |||
#Ermittlung der Zeitkiller | |||
#Eleminierung der Zeitkiller | |||
Version vom 24. Juni 2014, 17:49 Uhr
Problem
Das Ausführen der Simulation benötigt zu viel Zeit. Dadurch kann keine Echtzeitfähigkeit simuliert werden. Ebenfalls dauert das Durchlaufen einer Simulation zu lange. Wünschenswert ist eine Verkürzung der Simulationszeit auf ein Echteztiähnliches Verhalten.
Ansatz
- Der Ansatz sieht vor, dass in einem ersten Schritt die benötigte Simulationszeit pro Modul berechnet wird, um die "Zeitkiller" zu detektieren.
- Nun können die "Zeitkiller" detailliert betrachtet und analysiert werden.
- Nach der Implementierung der Optimierung sollte Schritt 1 und 2 erneut durchlaufen werden, bis das gewünschte Ergebnis erreicht ist.
- Auch nach Abschluss der Optimierung sollte in regelmäßigen Abständen eine Zeitanalyse durchgeführt werden.
Lösung
- Ermittlung der Simulationszeit
- Zur Ermittlung der Simulationszeit kann man sich von Simulink einen Profiler Report erstellen lassen. Dieser Bericht enthält dann alle wesentlichen Zeitwerte für die einzelnen Funktionen und Blöcke. Während der Profiler läuft dauert die Simulation ca. doppelt so lang wie üblich, da jeder Rechenschritt mitgeschrieben und analysiert wird. Am Ende des Durchlaufes erhält man einen Bericht in Form einer .html-Seite. Die aktuelle Ausgabe des Profile Reports lässt sich als Profile_Report.zip herunterladen. Gestartet wird der Report über die Datei main.html.
- Wenn man sich den Bericht anguckt, dann kann man direkt alle Teile überspringen, welche nicht mit CCF_Online anfangen, da diese nicht veränderlich sind, sondern durch Simulink selbst gesetzt werden.
- Die jetzt noch übrigen Auswertungen haben immer den gleichen Aufbau. Zuerst kommt der Name, dann die Zeit im Totalen und die Prozentzahl an der Gesamtlaufzeit der Simulation. Anschließend erfolgt eine Statistik über die Aufrufe des Blockes und die Durchschnittliche Zeit pro Aufruf. Der letzte Wert gibt an, wie viel Zeit Simulink zur Ausführung der Funktion ohne ihre Abhängigkeiten benötigt hat und wie viel Zeit dies von der eigentlichen Laufzeit des jeweiligen Modules ist.
TODO
- Ermittlung der Zeitkiller
- Eleminierung der Zeitkiller
_______________________________________________
zurück