Logo des Repositoriums
  • English
  • Deutsch
Anmelden
Keine TU-ID? Klicken Sie hier für mehr Informationen.
  1. Startseite
  2. Publikationen
  3. Publikationen der Technischen Universität Darmstadt
  4. Erstveröffentlichungen
  5. Actionable Program Analyses for Improving Software Performance
 
  • Details
2019
Erstveröffentlichung
Dissertation

Actionable Program Analyses for Improving Software Performance

File(s)
Download
Hauptpublikation
Marija_Selakovic_Dissertation.pdf
CC BY-SA 4.0 International
Format: Adobe PDF
Size: 872.27 KB
TUDa URI
tuda/4554
URN
urn:nbn:de:tuda-tuprints-87683
DOI
10.26083/tuprints-00008768
Autor:innen
Selakovic, Marija
Kurzbeschreibung (Abstract)

Nowadays, we have greater expectations of software than ever before. This is followed by constant pressure to run the same program on smaller and cheaper machines. To meet this demand, the application’s performance has become the essential concern in software development. Unfortunately, many applications still suffer from performance issues: coding or design errors that lead to performance degradation. However, finding performance issues is a challenging task: there is limited knowledge on how performance issues are discovered and fixed in practice, and current performance profilers report only where resources are spent, but not where resources are wasted. The goal of this dissertation is to investigate actionable performance analyses that help developers optimize their software by applying relatively simple code changes. To understand causes and fixes of performance issues in real-world software, we first present an empirical study of 98 issues in popular JavaScript projects. The study illustrates the prevalence of simple and recurring optimization patterns that lead to significant performance improvements. Then, to help developers optimize their code, we propose two actionable performance analyses that suggest optimizations based on reordering opportunities and method inlining. In this work, we focus on optimizations with four key properties. First, the optimizations are effective, that is, the changes suggested by the analysis lead to statistically significant performance improvements. Second, the optimizations are exploitable, that is, they are easy to understand and apply. Third, the optimizations are recurring, that is, they are applicable across multiple projects. Fourth, the optimizations are out-of-reach for compilers, that is, compilers can not guarantee that a code transformation preserves the original semantics. To reliably detect optimization opportunities and measure their performance benefits, the code must be executed with sufficient test inputs. The last contribution complements state-of-the-art test generation techniques by proposing a novel automated approach for generating effective tests for higher-order functions. We implement our techniques in practical tools and evaluate their effectiveness on a set of popular software systems. The empirical evaluation demonstrates the potential of actionable analyses in improving software performance through relatively simple optimization opportunities.

Sprache
Englisch
Alternativtitel
Umsetzbar Performanceanalysen zur Verbesserung der Softwareleistung
Alternatives Abstract

Die heutigen Erwartungen an Software sind größer als je zuvor. Vor allem der Druck bestehende Programme auf günstigerer und weniger leistungsfähiger Hardware auszuführen, lässt Performance zum zentralen Anliegen in der Softwareentwicklung werden. Und doch haben viele Anwendungen Performanceprobleme, also Design oder Programmierfehler, die zu Leistungseinbußen führen. Eben jene Performan-ceprobleme zu finden, ist allerdings eine anspruchsvolle Aufgabe: Das Wissen, wie Performanceprobleme in der Praxis gefunden und behoben werden ist begrenzt und heutige Profiler zeigen nur auf, wo Ressourcen ausgegeben, aber nicht wo sie verschwendet werden. Ziel dieser Arbeit ist es, praktisch umsetzbar Performanceanalysen zu unter- suchen, die Entwicklern helfen ihre Software durch relative einfache Änderungen am Quelltext zu optimieren. Um besser zu verstehen wie Performanceproblemen verursacht und behoben werden, stellen wir zunächst eine empirische Studie über 98 Probleme in weit verbreiteten JavaScript Projekten vor. Die Studie zeigt einfache und wiederkehrende Optimierungsmuster auf, die zu signifikanten Performance verbesserungen führen. Darauf aufbauend stellen wir zwei praktisch umsetzbar Performanceanalysen vor, die Entwicklern helfen ihre Programme durch Reordering und durch Methoden-Inlining zu optimieren. Dabei fokussieren wir uns auf Optimierungen mit vier zentralen Eigenschaften. Erstens sind die Optimierungen effektiv, das heißt die von der Analyse vorgeschlagenen Änderungen führen zu statistisch signifikanten Leistungssteigerungen. Zweitens sind die Optimierungen nutzbar, das heißt sie sind leicht zu verstehen und anzuwenden. Drittens sind die Optimierungen wiederkehrend, das heißt projektübergreifend anwendbar. Viertens sind die Optimierungen unerreichbar für Compiler, das heißt Compiler können nicht garantieren, dass eine Code-Transformation semantikerhaltend ist. Um die Optimierungsmöglichkeiten zuverlässig zu erkennen und deren Leistungsverbesserung messen zu können, muss der Code schließlich mit ausreichend Testeingaben ausgeführt werden. Der letzte Beitrag in dieser Arbeit ergänzt Testgenerierungstechniken auf dem Stand der Technik durch einen neuen, automatisierten Ansatz zur Generierung effektiver Tests für Funktionen höherer Ordnung. Wir implementierung die genannten Techniken in praxistauglichen Werkzeugen und bewerten deren Effektivität auf einer Reihe weit verbreiteter Softwaresysteme. Die empirische Auswertung zeigt, dass praktisch umsetzbar Performanceanalysen in der Lage sind die Leistung von Software durch relativ einfache Optimierungsvorschläge zu verbessern.

Fachbereich/-gebiet
20 Fachbereich Informatik > SOLA - Software Lab
DDC
000 Allgemeines, Informatik, Informationswissenschaft > 004 Informatik
Institution
Technische Universität Darmstadt
Ort
Darmstadt
Datum der mündlichen Prüfung
05.06.2019
Gutachter:innen
Pradel, Michael
Tip, Frank
Handelt es sich um eine kumulative Dissertation?
Nein
Name der Gradverleihenden Institution
Technische Universität Darmstadt
Ort der Gradverleihenden Institution
Darmstadt
PPN
449678660

  • TUprints Leitlinien
  • Cookie-Einstellungen
  • Impressum
  • Datenschutzbestimmungen
  • Webseitenanalyse
Diese Webseite wird von der Universitäts- und Landesbibliothek Darmstadt (ULB) betrieben.