Thesis (Selection of subject)Thesis (Selection of subject)(version: 368)
Thesis details
   Login via CAS
Optimizing large applications
Thesis title in Czech: Optimalizace rozsáhlých aplikací
Thesis title in English: Optimizing large applications
Key words: překladač, optimalizace kódu, operační systémy
English key words: compiler, code optimization, operating system
Academic year of topic announcement: 2012/2013
Thesis type: diploma thesis
Thesis language: angličtina
Department: Computer Science Institute of Charles University (32-IUUK)
Supervisor: doc. Mgr. Jan Hubička, Ph.D.
Author: hidden - assigned and confirmed by the Study Dept.
Date of registration: 08.11.2012
Date of assignment: 08.11.2012
Confirmed by Study dept. on: 14.12.2012
Date and time of defence: 09.09.2013 00:00
Date of electronic submission:01.08.2013
Date of submission of printed version:02.08.2013
Date of proceeded defence: 09.09.2013
Opponents: Mgr. Martin Mareš, Ph.D.
 
 
 
Guidelines
Oba hlavní open source překladače, GCC a LLVM, dnes dosahují stavu, kdy jsou
schopny link-time optimalizovat velké aplikace (například Firefox, Chrome,
OpenOffice, KDE nebo Gnome). Optimalizace v překladačích jsou ale tradičně
stavěné a testované na menších programech, jako například SPEC2006. Tyto
benchmarky netestují parametry podstatné pro skutečné aplikace, jako je
například velikost kódu, doba potřebná pro studený start aplikace a podobně.
Vývojové nástroje proto nevyhovují potřebám velkých sofwarových balíků.
Vývojáři těchto balíků tak často sahají k různým ad-hoc řešením,
mezi které patří například utilita ElfHack redukující velikost relativních
relokací v programu, startování vlastních aplikaci pomocí předzavedené utility
a dlopen, prelinking a různé nástroje pro přerovnání výsledného programu podle
pořadí provádění funkcí.

Student se seznámí s pokročilými technikami optimalizace kódu v překladačích.
Prozkoumá výkonnostní problémy velkých aplikací a určí metodu testování jejich
výkonu. V práci student zanalyzuje a popíše nejpodstatnější body řešitelné na
úrovni překladače, linkeru, jádra operačního systému a vývojových nástrojů. Na
základě této studie implementuje některé z navržených optimalizací.
References

Steven Muchnick: Advanced Compiler Design and Implementation, Morgan Kaufmann, 1997

Bob Morgan: Building an Optimizing Compiler, Digital Press, 1998

GNU Compiler Collection (GCC) Internals (dokumentace k projektu)

Urlich Drepper: How to Write Shared Libraries

Jakub Jelínek: Prelink, diplomová práce, 2003

Mike Hommey: Improving libxul startup I/O by hacking the ELF format, 2010

Jan Hubička, Taras Glek: Optimizing real-world applications with GCC Link Time Optimization, 2010

Xinliang David Li, Raksit Ashok, Robert Hundt: Lightweight Feedback-Directed Cross-Module Optimization, CGO 2010

Taras Glek: Improving binary layout for progressive decompression 2011

S. Tallam, C. Coutant, I.L. Taylor, X.D. Li, & C. Demetriou: Safe ICF: Pointer Safe and Unwinding aware Identical Code Folding in the Gold Linker, 2010
 
Charles University | Information system of Charles University | http://www.cuni.cz/UKEN-329.html