Quality of Service Profiling
This paper presents to readers a new Quality of Service (QoS) profiler that has been created to help developers figure out improved optimization opportunities in computations that reflect a trade off between execution time and QoS. Compared with standard profilers that simply identify time-consuming parts of the computation, an efficient profiler is able to identify sub computations that can be replaced with potentially less accurate sub computations that are able to provide increased performance for the user. At the same time, the replacements should work in return for small quality of service losses. This paper discusses performance optimization as an important software engineering activity. It delves on the standard approach that uses profilers to gain an understanding of where the program spends its time. With these findings, developers can focus their optimization efforts on parts of the program that provide potential for execution time reductions. With modern and new performance optimization efforts, many computations have evolved that show a trade off between execution time and QoS. This includes information retrieval computations and computations that manipulate sensory data such as video, images, and audio. Sophisticated video encoders can often produce encoded video frames faster if constraints on the quality of encoded video are relaxed. The developers in such cases must find a more complex optimization space instead of looking at replacing inefficient sub computations with better sub computations that eventually produce similar results.