Rust is a young systems programming language, but it has gained tremendous popularity thanks to its assurance of memory safety. However, the performance of Rust has been less systematically understood, although many people are claiming that Rust is comparable to C/C++ regarding efficiency.
In this paper, we aim to understand the performance of Rust, using C as the baseline. First, we collect a set of micro benchmarks where each program is implemented with both Rust and C. To ensure fairness, we manually validate that the Rust version and the C version implement the identical functionality using the same algorithm. Our measurement based on the micro benchmarks shows that Rust is in general slower than C, but the extent of the slowdown varies across different programs. On average, Rust brings a 1.75x ``performance overhead'' compared to C. Second, we dissect the root causes of the overhead and unveil that it is primarily incurred by run-time checks inserted by the compiler and restrictions enforced by the language design. With the run-time checks disabled and the restrictions loosened, Rust presents a performance indistinguishable from C.
Wed 12 OctDisplayed time zone: Eastern Time (US & Canada) change
13:30 - 15:30 | Technical Session 15 - Compilers and LanguagesJournal-first Papers / Research Papers / Industry Showcase at Banquet B Chair(s): Lingming Zhang University of Illinois at Urbana-Champaign | ||
13:30 20mResearch paper | Cornucopia: A Framework for Feedback Guided Generation of Binaries Research Papers Vidush Singhal Purdue University, Akul Abhilash Pillai Purdue University, Charitha Saumya Purdue University, Milind Kulkarni Purdue University, Aravind Machiry Purdue University | ||
13:50 20mPaper | CSMITHEDGE: More Effective Compiler Testing by Handling Undefined Behaviour Less Conservatively Journal-first Papers Karine Even-Mendoza Imperial College London, Cristian Cadar Imperial College London, UK, Alastair F. Donaldson Imperial College London | ||
14:10 20mResearch paper | Compiler Testing using Template Java ProgramsACM SIGSOFT Distinguished Paper Award Research Papers Zhiqiang Zang University of Texas at Austin, Nathan Wiatrek The University of Texas at Austin, Milos Gligoric University of Texas at Austin, August Shi University of Texas at Austin DOI Pre-print | ||
14:30 20mIndustry talk | Towards Understanding the Performance of Rust Industry Showcase Yuchen Zhang Stevens Institute of Technology, Yunhang Zhang The University of Utah, Georgios Portokalidis Stevens Institute of Technology, Jun Xu The University of Utah | ||
14:50 20mResearch paper | TransRepair: Context-aware Program Repair for Compilation ErrorsVirtual Research Papers Xueyang Li SKLOIS, Institute of Information Engineering, Chinese Academy of Sciences, China, Shangqing Liu Nanyang Technological University, Ruitao Feng Nanyang Technological University, Guozhu Meng Institute of Information Engineering, Chinese Academy of Sciences, Xiaofei Xie Singapore Management University, Singapore, Kai Chen SKLOIS, Institute of Information Engineering, Chinese Academy of Sciences, China, Yang Liu Nanyang Technological University | ||
15:10 20mResearch paper | Enriching Compiler Testing with Real Program from Bug ReportVirtual Research Papers Hao Zhong Shanghai Jiao Tong University |