-
-
Notifications
You must be signed in to change notification settings - Fork 963
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
* Added SummaryStyle doc and sample * Fixed link to source code * correct spelling
- Loading branch information
1 parent
01d9b78
commit 20e2ee7
Showing
2 changed files
with
90 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,51 @@ | ||
--- | ||
uid: BenchmarkDotNet.SummaryStyle | ||
--- | ||
|
||
## SummaryStyle in BenchmarkDotNet | ||
|
||
`SummaryStyle` is a class in BenchmarkDotNet that allows customization of the summary reports of benchmark results. It offers several properties to fine-tune how the results are displayed. | ||
|
||
### Usage | ||
|
||
You can customize the summary report by specifying various properties of `SummaryStyle`. These properties include formatting options like whether to print units in the header or content, setting the maximum width for parameter columns, and choosing units for size and time measurements. | ||
|
||
### Source Code | ||
|
||
[!code-csharp[IntroSummaryStyle.cs](../../../samples/BenchmarkDotNet.Samples/IntroSummaryStyle.cs)] | ||
|
||
### Properties | ||
|
||
- `PrintUnitsInHeader`: Boolean to indicate if units should be printed in the header. | ||
- `PrintUnitsInContent`: Boolean to control unit printing in the content. | ||
- `PrintZeroValuesInContent`: Determines if zero values should be printed. | ||
- `MaxParameterColumnWidth`: Integer defining the max width for parameter columns. | ||
- `SizeUnit`: Optional `SizeUnit` to specify the unit for size measurements. | ||
- `TimeUnit`: Optional `TimeUnit` for time measurement units. | ||
- `CultureInfo`: `CultureInfo` to define culture-specific formatting. | ||
|
||
### Example Output | ||
|
||
Using SummaryStyle options: | ||
|
||
```markdown | ||
| Method | N | Mean [ns] | Error [ns] | StdDev [ns] | | ||
|------- |---- |--------------:|-----------:|------------:| | ||
| Sleep | 10 | 15,644,973.1 | 32,808.7 | 30,689.3 | | ||
| Sleep | 100 | 109,440,686.7 | 236,673.8 | 221,384.8 | | ||
``` | ||
|
||
Default: | ||
|
||
```markdown | ||
| Method | N | Mean | Error | StdDev | | ||
|------- |---- |----------:|---------:|---------:| | ||
| Sleep | 10 | 15.65 ms | 0.039 ms | 0.034 ms | | ||
| Sleep | 100 | 109.20 ms | 0.442 ms | 0.392 ms | | ||
``` | ||
|
||
### Links | ||
|
||
* @docs.SummaryStyle | ||
* The permanent link to this sample: @BenchmarkDotNet.Samples.IntroSummaryStyle | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,39 @@ | ||
using System.Globalization; | ||
using BenchmarkDotNet.Attributes; | ||
using BenchmarkDotNet.Configs; | ||
using BenchmarkDotNet.Reports; | ||
using BenchmarkDotNet.Columns; | ||
using Perfolizer.Horology; | ||
|
||
namespace BenchmarkDotNet.Samples | ||
{ | ||
[Config(typeof(Config))] | ||
public class IntroSummaryStyle | ||
{ | ||
private class Config : ManualConfig | ||
{ | ||
public Config() | ||
{ | ||
// Configure the summary style here | ||
var summaryStyle = new SummaryStyle | ||
( | ||
cultureInfo: CultureInfo.InvariantCulture, | ||
printUnitsInHeader: true, | ||
printUnitsInContent: false, | ||
sizeUnit: SizeUnit.KB, | ||
timeUnit: TimeUnit.Nanosecond, | ||
maxParameterColumnWidth: 20 | ||
|
||
); | ||
|
||
WithSummaryStyle(summaryStyle); | ||
} | ||
} | ||
|
||
[Params(10, 100)] | ||
public int N; | ||
|
||
[Benchmark] | ||
public void Sleep() => System.Threading.Thread.Sleep(N); | ||
} | ||
} |