Precompilation has been hypothesised as a promising strategy for Ops-oriented micro-optimisation of microservice-based applications. This paper presents an empirical study on evaluating the hypothesis that compiling Python-coded microservices into native C binaries during the containerisation phase can reduce runtime overhead and improve overall application efficiency. Firstly, we employed a micro-benchmark suite to investigate micro-optimisation effects on a single microservice with respect to the CPU, memory, disk, and network performance characteristics. Then, we developed a microservice-based application benchmark to compare application-level performance between its original and optimised forms. Beyond performance metrics, we further examined the implications of integrating precompilation into continuous integration and delivery (CI/CD). Our results show that CPU and network bound workloads see performance improvements of up to 27% and 44% respectively, however memory usage increases by approximately 30%, and build times extend significantly, negatively impacting the CI/CD workflows. This paper contributes evidence-based guidance for when precompilation is an effective micro-optimisation strategy and under what conditions it should (or should not) be integrated into software delivery processes.

错误:搜索内容不能为空,请输入英文关键词
错误:关键词超出字数限制,请精简
高级检索

An Empirical Study on Precompilation as an Ops-oriented Micro-optimisation Strategy for Microservice-based Applications

  • James Dougan,
  • Zheng Li

摘要

Precompilation has been hypothesised as a promising strategy for Ops-oriented micro-optimisation of microservice-based applications. This paper presents an empirical study on evaluating the hypothesis that compiling Python-coded microservices into native C binaries during the containerisation phase can reduce runtime overhead and improve overall application efficiency. Firstly, we employed a micro-benchmark suite to investigate micro-optimisation effects on a single microservice with respect to the CPU, memory, disk, and network performance characteristics. Then, we developed a microservice-based application benchmark to compare application-level performance between its original and optimised forms. Beyond performance metrics, we further examined the implications of integrating precompilation into continuous integration and delivery (CI/CD). Our results show that CPU and network bound workloads see performance improvements of up to 27% and 44% respectively, however memory usage increases by approximately 30%, and build times extend significantly, negatively impacting the CI/CD workflows. This paper contributes evidence-based guidance for when precompilation is an effective micro-optimisation strategy and under what conditions it should (or should not) be integrated into software delivery processes.