Hinweise zur Performance¶
Zur Verbesserung der Performance in verschiedenen Bereichen bei der Verwendung von ecu.test sind nachfolgend einige Hinweise aufgelistet. Da diese auch nachteilige Nebeneffekte haben können, sollten sie nur dann angewendet werden, wenn im konkreten Ausführungskontext eine Verbesserung zu erwarten ist.
ecu.test Runner¶
Speziell für den Anwendungsfall, dass nur ein einzelner Testfall (Package oder Projekt) ausgeführt werden soll, kann unter Windows ecu.test_runner.exe verwendet werden. Details siehe Ausführen eines Packages oder Projektes.
Dieser kann in bestimmten Anwendungsfällen auch die Fernsteuerung via REST API ersetzen. Dabei werden insbesondere Verzögerungen und Komplexität durch das Status-Polling minimiert.
Wird ecu.test über den test.guide ResourceAdapter ferngesteuert, kann in dessen Konfiguration einfach der Name der .exe-Datei ersetzt werden.
Unter Linux wird der ecu.test Runner standardmäßig beim Aufruf von ecu.test verwendet.
Versionsverwaltung¶
Bei aktivierter Versionsverwaltung wird während der Testausführung für jedes aufgerufene
Package die Revision ermittelt und in den Report geschrieben. Das verbessert zwar die
Nachvollziehbarkeit, führt jedoch zu Verzögerungen bei der Ausführung. Bei der Verwendung von
Git z.B. durch das häufige Starten von git.exe.
Falls die Nachvollziehbarkeit auf anderer Ebene gewährleistet ist bzw. nicht zwangsläufig erforderlich ist, sollte die Versionsverwaltung deaktiviert werden.
Caching und Cache-Synchronisation¶
Für viele Arten von Testdatenbanken (z.B. A2L, Bus-Datenbanken, einige Modelle) erzeugt ecu.test beim erstmaligen Starten der Toolanbindung bereits lokale Caches. Diese werden wiederverwendet, falls die Datenbank bzw. die Modelldatei seit dem letzten Start unverändert geblieben ist.
Falls das initiale Einlesen der Datenbank erheblich dauert und zusätzlich dasselbe Testobjekt verteilt auf mehreren Testrechnern verwendet werden soll, kann das lokale Caching durch ein Cache-Austauschverzeichnis oder ein test.guide-Depository ersetzt werden.
Logausgaben reduzieren¶
Falls während der Testausführung eine erhebliche Zahl an Einträgen im Log entsteht, kann dies die Ausführung verlangsamen. In den Protokoll-Einstellungen sollte daher die Stufe Maximal nur gewählt werden, falls das für die Nachverfolgung von Fehlern notwendig ist.
Im Normalfall sollten die Optionen bei Inhalt deaktiviert sein.
Um die Fehlersuche nicht unnötig zu erschweren, sollten die Stufen Minimal oder Aus nur in Ausnahmefällen verwendet werden, wo dies für eine Verbesserung der Performance unbedingt notwendig ist.
Die Option Ausgabe-Logdateien synchron schreiben sollte möglichst deaktiviert sein, um das blockierende Schreiben in die Logdatei zu vermeiden.
Garbage-Collection¶
Unter bestimmten Umständen kann es sinnvoll sein, den Python Garbage-Collector zu deaktivieren, um Verzögerungen bei der Abarbeitung der Testschritte zu vermeiden.
Große Workspaces¶
Falls möglich sollte die Verwendung sehr großer Workspaces (mehrere tausend Dateien) vermieden
werden. Auch verzögert die Verarbeitung sehr großer prjattr.spec- und
pkgattr.spec-Dateien im .workspace-Verzeichnis den Start von ecu.test. Diese
sollten daher nur so groß wie nötig sein.
Lizenzabfrage¶
Zu verschiedenen Zeitpunkten bei der Benutzung von ecu.test wird überprüft, ob eine gültige Lizenz vorliegt. Falls eine Server-Lizenz verwendet wird, kann dies je nach Netzwerkauslastung zu Verzögerungen führen.
Bei wiederholt auftretenden Verzögerungen durch Lizenzabfragen kann je nach Lizenzmodell eine lokal ausgecheckte Roaming-Lizenz verwendet werden.
Falls eine Roaming-Lizenz verwendet wird, sollte darauf geachtet werden, dass die Lizenz nicht automatisch verlängert wird. Dies erreicht man durch das Setzen der Umgebungsvariable:
- tracet_RLM_ROAM¶
auf den Wert 0.
Virtualisierte Umgebungen¶
Die Performance der Testausführung hängt auch wesentlich davon ab, ob sie komplett lokal auf einem physischen Rechner erfolgt oder in einer Virtualisierungsumgebung. Die dort oft eingeschränkten Ressourcen unterliegen auch manchmal Schwankungen, je nach Gesamtauslastung der Virtualisierungsumgebung.
Die Verwendung von Netzlaufwerken für Testartefakte oder die Ablage von Reports sollte nach Möglichkeit minimiert werden, da diese zu erheblichen Latenzen führen kann.