Abstract
During the process of software development, developers may encounter many thorny is- sues such as long execution time, abnormal hardware behavior or improper allocation of resources, etc. Therefore, more and more profilers are used to discovery these events and help developers to solve the problems. Among these profilers, LatencyTop is especially in- teresting, because it can report system-level delays for Linux and Android systems. While many profilers are able to investigate the problems down to the level of individual functions, LatencyTOP can only report system delays at the process level. This thesis enhances La- tencyTOP so that it can profile system latency at the function level on Linux and Android. The enhancement is not straightforward. For example, we need to discriminate the latency between callee and caller in nested function calls. Multithreading also causes problem in differentiating different versions of a function. In order to retrieve the function-level system latency, we provide a set of APIs to allow the developer to use our profiler. To evaluate our system, we run some simple programs to demonstrate the correctness of our system in profiling at the function level. We also evaluate the performance of our system.