Exploring the Use of Learning Algorithms for Efficient Performance Profiling

semanticscholar(2018)

引用 0|浏览7
暂无评分
摘要
A key challenge in profiling programs for identifying performance bottlenecks is balancing accuracy and runtime overhead. While statistical profilers are canonically used in production settings due to their low overhead, they treat all events equally by sampling at a uniform frequency. Thus, infrequent events are rarely sampled if the sampling rate is low (low accuracy), and low-variance events that take little time may be sampled too often if the rate is too high (high overhead). The challenge is that event frequency and runtime is unknown a priori. Tracing profilers circumvent this problem by instrumenting code and deterministically recording each event, but this model has traditionally come at the cost of high performance penalties. We explore the use of learning profilers that systematically trace a program and learn which parts of a program to profile. Our results show that our technique reduces the overhead of profiling a production HTML parsing workload by 1.5× compared to Python’s built-in tracing cProfile module, and provides significantly more accurate results based on the KL-divergence of the estimated runtime distributions compared to a popular open-source statistical profiler, for the same overhead.
更多
查看译文
AI 理解论文
溯源树
样例
生成溯源树,研究论文发展脉络
Chat Paper
正在生成论文摘要