Optimizing large applications
Martin Li\v{s}ka

TL;DR
This paper analyzes various optimization techniques for large applications using GCC and LLVM, focusing on code size and startup time, and proposes new solutions based on link-time optimization.
Contribution
It evaluates existing optimization methods for large applications and introduces novel solutions leveraging link-time optimization platforms.
Findings
Existing techniques vary in efficiency for large applications.
Pre-loading and function reordering can improve startup time.
New optimization solutions outperform some traditional methods.
Abstract
Both uppermost open source compilers, GCC and LLVM, are mature enough to link-time optimize large applications. In case of large applications, we must take into account, except standard speed efficiency and memory consumption, different aspects. We focus on size of the code, cold start-up time, etc. Developers of applications often come up with ad-hoc solutions such as Elfhack utility, start-up of an application via a pre-loading utility and dlopen; prelinking and variety of different tools that reorder functions to fit the order of execution. The goal of the thesis is to analyse all existing techniques of optimization, evaluate their efficiency and design new solutions based on the link-time optimization platform.
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
Taxonomy
TopicsParallel Computing and Optimization Techniques · Logic, programming, and type systems · Embedded Systems Design Techniques
