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

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.

主站蜘蛛池模板: 苍梧县| 乐至县| 岳普湖县| 永济市| 内丘县| 鄂托克旗| 东兰县| 郯城县| 山东| 兴山县| 乳源| 陇川县| 丽水市| 咸阳市| 辉南县| 信宜市| 元江| 柳州市| 苍溪县| 高安市| 黄梅县| 镇原县| 厦门市| 湖北省| 焦作市| 贺州市| 资中县| 金沙县| 洛扎县| 长武县| 竹北市| 布尔津县| 英超| 通榆县| 云林县| 景谷| 余姚市| 巧家县| 治县。| 大城县| 略阳县|