blob: beec4d959b2c40dcedbe211cafa323a4ae246da6 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
|
The benchmarks in these sub-directories are based on
The Computer Language Benchmarks Game
http://benchmarksgame.alioth.debian.org/
See the adjoining LICENSE.TXT file for license terms.
Our intention with these tests is twofold:
1 - To track .NET Core's performance on these benchmarks in the
same benchmarking system used for other internal .NET Core
performance benchmarks.
2 - To make these available for daily JIT (and runtime) development,
as a factor in assessing the performance impact of compiler
(and runtime) changes.
The benchmarks have been modified to fit into the CoreCLR test and
performance test framework, as follows:
- adding validity checks to ensure optimizers correctly optimize
and do not remove computation
- adding return codes to main based on those checks
- adding an xunit-performance entry point, and adjusting work so each
xunit-performance iteration is approximately 1 second on modern x64
hardware
- reducing verbosity when run as a benchmark
- calling different APIs in a few places to allow compiling against
netstandard1.4
- reformatting
- in the case of pidigits, implementing on top of .NET's BigInteger
type rather than p/invokes to the native GMP library
These benchmarks are just a subset of the benchmarks available in C# from
the Benchmarks Game site. The highest-scoring C# .NET Core variant of each
benchmark is included, and in the (common) case of benchmarks where the
best-scoring variant uses multiple threads, we've also selected variants
that do not rely on multiple threads, to ensure relative benchmark stability
across a variety of machines.
|