CAT: Context Aware Tracing for Rust Asynchronous Programs

38TH ANNUAL ACM SYMPOSIUM ON APPLIED COMPUTING, SAC 2023(2023)

引用 0|浏览0
暂无评分
摘要
Modern programming languages, such as Rust, have adopted the coroutine concept to better utilize computation resources and to improve program execution efficiency by allowing the overlap of the execution for asynchronous tasks. These programming languages often use the concept of userland thread library to dispatch the asynchronous tasks defined by the programmers. Nevertheless, it is often the case that the task scheduling on a user-space library is non-preemptive and would lead to unbounded execution time of a task. In this work, we aim to develop a tracing methodology to capture unbounded execution time of asynchronous tasks in Rust programs. Based on the analyses of the Rust standard library, we identify several execution contexts of asynchronous computation in Rust, and develop a portable context aware tracing methodology that is able to trace the execution time of nested asynchronous computation work across different Rust runtimes. We develop a framework, called CAT, to collect and visualize the asynchronous runtime activities. The results show that CAT can help pinpoint the asynchronous computation exhibiting prolonged execution time. We believe that CAT is a complement of existing tools to improve the execution efficiency of asynchronous operations in Rust.
更多
查看译文
关键词
Rust Programming Language,Performance Profiling/Tracing,Asynchronous Programming Model
AI 理解论文
溯源树
样例
生成溯源树,研究论文发展脉络
Chat Paper
正在生成论文摘要