arbeiten:framework_latency

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Nächste Überarbeitung
Vorhergehende Überarbeitung
Nächste ÜberarbeitungBeide Seiten der Revision
arbeiten:framework_latency [04.08.2019 18:09] – Erstellt mit dem Formular arbeiten:anlegen Andreas Schmidarbeiten:framework_latency [15.05.2020 14:28] Andreas Schmid
Zeile 2: Zeile 2:
  
 ---- dataentry StudentischeArbeit ---- ---- dataentry StudentischeArbeit ----
-Thema                       : Entwicklung einer Messmethode für die Verarbeitungszeit von Graphikframeworks +Thema                                  : Entwicklung einer Messmethode für die Verarbeitungszeit von Graphikframeworks 
-Art_thesistypes             MA +Art_thesistypes                        BA 
-Betreuender_thesisadvisor   : Andreas Schmid +BetreuerIn_thesisadvisor               : Andreas Schmid 
-Studierender                :  +BearbeiterIn                           Fabian Schiller 
-Erstgutachter/in_thesisprofessor  : Raphael Wimmer +ErstgutachterIn_thesisprofessor        : Raphael Wimmer 
-Zweitgutachter/in_thesisprofessor :  +ZweitgutachterIn_secondthesisprofessor :  
-Status_thesisstate          Entwurf +Status_thesisstate                     in Bearbeitung 
-Stichworte_thesiskeywords   : Latenz, Graphik, Framework +Stichworte_thesiskeywords              : Latenz, Graphik, Framework 
-angelegt_dt                 : 2019-08-04 +angelegt_dt                            : 2019-08-04 
-Beginn_dt                   :  +Beginn_dt                              :  
-Anmeldung_dt                :  +Anmeldung_dt                           :  
-Antrittsvortrag_dt          :  +Antrittsvortrag_dt                     2020-05-25 
-Abschlussvortrag_dt         :  +Abschlussvortrag_dt                    :  
-Ende_dt                     +Abgabe_dt                              :  
 +Textlizenz_textlicense                 : Unbekannt #  
 +Codelizenz_codelicense                 Unbekannt # 
 ---- ----
 +
 +
 +
 +
  
 === Hintergrund === === Hintergrund ===
Zeile 22: Zeile 28:
 Bei der Interaktion mit Computersystemen spielt die Latenz zwischen Ein- und Ausgabe eine wichtige Rolle, da sich zu lange Wartezeiten auf Performanz und User Experience auswirken können [1]. Bei der Interaktion mit Computersystemen spielt die Latenz zwischen Ein- und Ausgabe eine wichtige Rolle, da sich zu lange Wartezeiten auf Performanz und User Experience auswirken können [1].
 Die Gesamtlatenz (Ende zu Ende) eines Systems setzt sich aus mehreren Teillatenzen bei Eingabe, Verarbeitung und Ausgabe zusammen [2]. Die Gesamtlatenz (Ende zu Ende) eines Systems setzt sich aus mehreren Teillatenzen bei Eingabe, Verarbeitung und Ausgabe zusammen [2].
-Um die Gesamtlatenz eines Systems messen, verstehen und schließlich verbessern zu können, müssen deshalb deren Teillatenzen einzeln betrachtet werden.+Um die Gesamtlatenz eines Systems messen, verstehen und schließlich verbessern zu können, ist es sinnvoll, die Teillatenzen einzeln zu betrachten.
  
-Mittlerweile existieren zahlreiche Frameworks, die Funktionalität zur Ein- und Ausgabe abstrahieren und somit das Erstellen von graphischen Anwendungen erleichtern.+Mittlerweile existieren zahlreiche UI-Frameworks, die Funktionalität zur Ein- und Ausgabe abstrahieren und somit das Erstellen von graphischen Anwendungen erleichtern.
 Diese Frameworks reichen von hardwarenahen Programmierschnittstellen wie OpenGL [3], GUI-Toolkits wie Qt [4], 3D-Engines wie Unity [5] bis hin zu browserbasierten Ansätzen. Diese Frameworks reichen von hardwarenahen Programmierschnittstellen wie OpenGL [3], GUI-Toolkits wie Qt [4], 3D-Engines wie Unity [5] bis hin zu browserbasierten Ansätzen.
-Dabei steigt der Abstraktionsgrad, was auch einen Effekt auf die Verarbeitungszeit des Frameworks und somit die Gesamtlatenz des Systems haben kann.+Mit der Programmiererfreundlichkeit des UI-Frameworks steigt in der Regel auch desssen Abstraktionsgrad, was auch einen Effekt auf die Verarbeitungszeit des Frameworks und somit die Gesamtlatenz des Systems haben kann.
  
  
 === Zielsetzung der Arbeit === === Zielsetzung der Arbeit ===
  
-Da bei der Auswahl eines Graphikframeworks auch dessen Latenz eine Rolle spielt, soll eine Messmethode entwickelt werden, mit der die Verarbeitungszeit von Frameworks gemessen und verglichen werden kann. +Da bei der Auswahl eines UI-Frameworks auch dessen Latenz eine Rolle spielt, soll in dieser Arbeit eine Messmethode entwickelt werden, mit der die Verarbeitungszeit von UI-Frameworks gemessen und verglichen werden kann. 
-Dazu ist es wichtig, den Renderingprozess eines Systems [6] zu verstehen, um die korrekten Messpunkte zu bestimmen und Störfaktoren auszuschließen. +Dazu ist es wichtig, den Renderingprozess eines Systems [6] zu verstehen, um die korrekten Messpunkte zu bestimmen und Störfaktoren auszuschließen [7]
-In dieser Arbeit soll eine Testanwendung implementiert werden, mit der die Verarbeitungszeit von Graphikframeworks gemessen werden kann. +In dieser Arbeit sollen zuerst die Architekturen gängiger UI-Frameworks untersucht und verglichen werden. 
-Damit soll eine Auswahl an verbreiteten Frameworks unter Linux getestet werden.+Anschließend soll ein Mess-Framework implementiert werden, mit dem die Latenz von UI-Frameworks reproduzierbar gemessen und verglichen werden kann. 
 +Damit soll dann eine Auswahl an verbreiteten UI-Frameworks getestet werden
 +Die Ergebnisse sollen dokumentiert und eingeordnet werden. 
 +Zielplattform des Mess-Frameworks ist Linux, optional auch zusätzlich andere Betriebssysteme.
  
 === Konkrete Aufgaben === === Konkrete Aufgaben ===
  
- * Aufbereiten des Themas (Literaturrecherche) (2 Wochen+ * Aufbereiten des Themas (Literaturrecherche) (1 Woche
- * Einarbeiten in die Renderingpipeline von Linux (Wochen) + * Einarbeiten in die Rendering-Pipeline von Linux (Wochen) 
- * Aufstellen eines Überblicks über verschiedene Graphikframeworks (2 Wochen+ * Aufstellen eines Überblicks über verschiedene UI-Frameworks (1 Woche
- * Implementieren einer Anwenung zum Messen der Latenz von Graphikframeworks (Wochen) + * Implementieren einer Anwendung zum Messen der Latenz von UI-Frameworks (Wochen) 
- * Implementieren von Testanwendungen mit verschiedenen Graphikframeworks (2 Wochen+ * Implementieren von Testanwendungen mit verschiedenen UI-Frameworks (1 Woche
- * Messen der Latenz von Graphikframeworks (2 Wochen) + * Messen der Latenz von UI-Frameworks und Auswertung der Ergebnisse (Wochen) 
- Auswertung der Ergebnisse (Wochen) + Fertigstellen der schriftlichen Ausarbeitung (Wochen) 
- Erstellen der schriftlichen Ausarbeitung (Wochen)+
  
 === Erwartete Vorkenntnisse === === Erwartete Vorkenntnisse ===
Zeile 67: Zeile 76:
  
 [6] https://blogs.igalia.com/itoral/2014/07/29/a-brief-introduction-to-the-linux-graphics-stack/ [6] https://blogs.igalia.com/itoral/2014/07/29/a-brief-introduction-to-the-linux-graphics-stack/
 +
 +[7] https://easyperf.net/blog/2019/08/02/Perf-measurement-environment-on-Linux