官术网_书友最值得收藏!

Benchmarks

When business needs change and your program gets a requirement to perform more efficiently, the first step to take is to find out the areas that are slow in the program. How can you tell where the bottlenecks are? You can tell by measuring individual parts of your program on various expected ranges or on a magnitude of inputs. This is known as benchmarking your code. Benchmarking is usually done at the very last stage of development (but does not have to be) to provide insights on areas where there are performance pitfalls in code.

There are various ways to perform benchmark tests for a program. The trivial way is to use the Unix tool time to measure the execution time of your program after your changes. But that doesn't provide precise micro-level insights. Rust provides us with a built-in micro benchmarking framework. By micro benchmarking, we mean that it can be used to benchmark individual parts of the code in isolation and remains unbiased from external factors. However, it also means that we should not rely solely on micro benchmarks since the real world results can be skewed. Thus, a micro benchmark is often followed by profiling and macro benchmarking of the code. Nonetheless, micro benchmarking is often a starting point for improving the performance of your code as the individual parts contribute a lot to the overall running time of your program.

In this section, we will discuss the tool that Rust provides as a built in for performing micro benchmarks. Rust lowers the bar for writing benchmarking code right from the initial stages of development, rather than doing it as a last resort. The way you run benchmarks is similar to how tests are run, but uses the cargo bench command instead.

主站蜘蛛池模板: 榆中县| 攀枝花市| 黄骅市| 昌宁县| 武山县| 房产| 天气| 天津市| 富平县| 吉林市| 南汇区| 汪清县| 黎城县| 太白县| 郧西县| 化德县| 呈贡县| 交口县| 祁阳县| 河西区| 东海县| 镇康县| 东台市| 奎屯市| 集安市| 邵武市| 龙游县| 榆树市| 土默特左旗| 新干县| 武冈市| 信宜市| 雷波县| 邵东县| 闽侯县| 彭泽县| 阳信县| 塘沽区| 海盐县| 南和县| 勐海县|