Optimizing Function Layout for Mobile Applications

11/17/2022
by   Ellis Hoag, et al.
0

Function layout, also referred to as function reordering or function placement, is one of the most effective profile-guided compiler optimizations. By reordering functions in a binary, compilers are able to greatly improve the performance of large-scale applications or reduce the compressed size of mobile applications. Although the technique has been studied in the context of large-scale binaries, no recent study has investigated the impact of function layout on mobile applications. In this paper we develop the first principled solution for optimizing function layouts in the mobile space. To this end, we identify two important optimization goals, the compressed code size and the cold start-up time of a mobile application. Then we propose a formal model for the layout problem, whose objective closely matches the goals. Our novel algorithm to optimize the layout is inspired by the classic balanced graph partitioning problem. We carefully engineer and implement the algorithm in an open source compiler, LLVM. An extensive evaluation of the new method on large commercial mobile applications indicates up to 2 time improvement on top of the state-of-the-art approach.

READ FULL TEXT

page 2

page 3

research
07/18/2018

BOLT: A Practical Binary Optimizer for Data Centers and Beyond

Performance optimization for large-scale applications has recently becom...
research
02/25/2020

Optimizing User Interface Layouts via Gradient Descent

Automating parts of the user interface (UI) design process has been a lo...
research
10/01/2018

Codestitcher: Inter-Procedural Basic Block Layout Optimization

Modern software executes a large amount of code. Previous techniques of ...
research
07/15/2022

Reflow: Automatically Improving Touch Interactions in Mobile Applications through Pixel-based Refinements

Touch is the primary way that users interact with smartphones. However, ...
research
09/12/2018

Improved Basic Block Reordering

Basic block reordering is an important step for profile-guided binary op...
research
10/25/2022

Net Separation-Oriented Printed Circuit Board Placement via Margin Maximization

Packaging has become a crucial process due to the paradigm shift of More...
research
12/24/2021

Profile Guided Optimization without Profiles: A Machine Learning Approach

Profile guided optimization is an effective technique for improving the ...

Please sign up or login with your details

Forgot password? Click here to reset