benchmarkdotnet - BenchmarkDotNet 0.13.13-nightly.20240720.160

Powerful .NET library for benchmarking

PM> Install-Package BenchmarkDotNet -Version 0.13.13-nightly.20240720.160 -Source https://www.myget.org/F/benchmarkdotnet/api/v3/index.json

Copy to clipboard

> nuget.exe install BenchmarkDotNet -Version 0.13.13-nightly.20240720.160 -Source https://www.myget.org/F/benchmarkdotnet/api/v3/index.json

Copy to clipboard

> dotnet add package BenchmarkDotNet --version 0.13.13-nightly.20240720.160 --source https://www.myget.org/F/benchmarkdotnet/api/v3/index.json

Copy to clipboard
<PackageReference Include="BenchmarkDotNet" Version="0.13.13-nightly.20240720.160" />
Copy to clipboard
source https://www.myget.org/F/benchmarkdotnet/api/v3/index.json

nuget BenchmarkDotNet  ~> 0.13.13-nightly.20240720.160
Copy to clipboard

> choco install BenchmarkDotNet --version 0.13.13-nightly.20240720.160 --source https://www.myget.org/F/benchmarkdotnet/api/v2

Copy to clipboard
Import-Module PowerShellGet
Register-PSRepository -Name "benchmarkdotnet" -SourceLocation "https://www.myget.org/F/benchmarkdotnet/api/v2"
Install-Module -Name "BenchmarkDotNet" -RequiredVersion "0.13.13-nightly.20240720.160" -Repository "benchmarkdotnet" -AllowPreRelease
Copy to clipboard

Browse the sources in this package using Visual Studio or WinDbg by configuring the following symbol server URL: https://www.myget.org/F/benchmarkdotnet/api/v2/symbolpackage/


NuGet MyGet Downloads Stars License Twitter

BenchmarkDotNet helps you to transform methods into benchmarks, track their performance, and share reproducible measurement experiments. It's no harder than writing unit tests! Under the hood, it performs a lot of magic that guarantees reliable and precise results thanks to the perfolizer statistical engine. BenchmarkDotNet protects you from popular benchmarking mistakes and warns you if something is wrong with your benchmark design or obtained measurements. The results are presented in a user-friendly form that highlights all the important facts about your experiment. BenchmarkDotNet is already adopted by 22000+ GitHub projects including .NET Runtime, .NET Compiler, .NET Performance, and many others.

It's easy to start writing benchmarks, check out the following example (copy-pastable version is here):

[SimpleJob(RuntimeMoniker.Net472, baseline: true)]
[SimpleJob(RuntimeMoniker.NetCoreApp30)]
[SimpleJob(RuntimeMoniker.NativeAot70)]
[SimpleJob(RuntimeMoniker.Mono)]
[RPlotExporter]
public class Md5VsSha256
{
    private SHA256 sha256 = SHA256.Create();
    private MD5 md5 = MD5.Create();
    private byte[] data;

    [Params(1000, 10000)]
    public int N;

    [GlobalSetup]
    public void Setup()
    {
        data = new byte[N];
        new Random(42).NextBytes(data);
    }

    [Benchmark]
    public byte[] Sha256() => sha256.ComputeHash(data);

    [Benchmark]
    public byte[] Md5() => md5.ComputeHash(data);
}

BenchmarkDotNet automatically runs the benchmarks on all the runtimes, aggregates the measurements, and prints a summary table with the most important information:

BenchmarkDotNet=v0.12.0, OS=Windows 10.0.17763.805 (1809/October2018Update/Redstone5)
Intel Core i7-7700K CPU 4.20GHz (Kaby Lake), 1 CPU, 8 logical and 4 physical cores
  [Host]       : .NET Framework 4.7.2 (4.7.3468.0), X64 RyuJIT
  Net472       : .NET Framework 4.7.2 (4.7.3468.0), X64 RyuJIT
  NetCoreApp30 : .NET Core 3.0.0 (CoreCLR 4.700.19.46205, CoreFX 4.700.19.46214), X64 RyuJIT
  NativeAot70  : .NET 7.0.0-preview.4.22172.7, X64 NativeAOT
  Mono         : Mono 6.4.0 (Visual Studio), X64


| Method |       Runtime |     N |       Mean |     Error |    StdDev | Ratio |
|------- |-------------- |------ |-----------:|----------:|----------:|------:|
| Sha256 |    .NET 4.7.2 |  1000 |   7.735 us | 0.1913 us | 0.4034 us |  1.00 |
| Sha256 | .NET Core 3.0 |  1000 |   3.989 us | 0.0796 us | 0.0745 us |  0.50 |
| Sha256 | NativeAOT 7.0 |  1000 |   4.091 us | 0.0811 us | 0.1562 us |  0.53 |
| Sha256 |          Mono |  1000 |  13.117 us | 0.2485 us | 0.5019 us |  1.70 |
|        |               |       |            |           |           |       |
|    Md5 |    .NET 4.7.2 |  1000 |   2.872 us | 0.0552 us | 0.0737 us |  1.00 |
|    Md5 | .NET Core 3.0 |  1000 |   1.848 us | 0.0348 us | 0.0326 us |  0.64 |
|    Md5 | NativeAOT 7.0 |  1000 |   1.817 us | 0.0359 us | 0.0427 us |  0.63 |
|    Md5 |          Mono |  1000 |   3.574 us | 0.0678 us | 0.0753 us |  1.24 |
|        |               |       |            |           |           |       |
| Sha256 |    .NET 4.7.2 | 10000 |  74.509 us | 1.5787 us | 4.6052 us |  1.00 |
| Sha256 | .NET Core 3.0 | 10000 |  36.049 us | 0.7151 us | 1.0025 us |  0.49 |
| Sha256 | NativeAOT 7.0 | 10000 |  36.253 us | 0.7076 us | 0.7571 us |  0.49 |
| Sha256 |          Mono | 10000 | 116.350 us | 2.2555 us | 3.0110 us |  1.58 |
|        |               |       |            |           |           |       |
|    Md5 |    .NET 4.7.2 | 10000 |  17.308 us | 0.3361 us | 0.4250 us |  1.00 |
|    Md5 | .NET Core 3.0 | 10000 |  15.726 us | 0.2064 us | 0.1930 us |  0.90 |
|    Md5 | NativeAOT 7.0 | 10000 |  15.627 us | 0.2631 us | 0.2461 us |  0.89 |
|    Md5 |          Mono | 10000 |  30.205 us | 0.5868 us | 0.6522 us |  1.74 |

The measured data can be exported to different formats (md, html, csv, xml, json, etc.) including plots:

Supported runtimes: .NET 5+, .NET Framework 4.6.1+, .NET Core 3.1+, Mono, NativeAOT
Supported languages: C#, F#, Visual Basic
Supported OS: Windows, Linux, macOS
Supported architectures: x86, x64, ARM, ARM64, Wasm and LoongArch64

Features

BenchmarkDotNet has tons of features that are essential in comprehensive performance investigations. Four aspects define the design of these features: simplicity, automation, reliability, and friendliness.

Simplicity

You shouldn't have to be an experienced performance engineer if you want to write benchmarks. You can design very complicated performance experiments in the declarative style using simple APIs.

For example, if you want to parameterize your benchmark, mark a field or a property with [Params(1, 2, 3)]: BenchmarkDotNet will enumerate all of the specified values and run benchmarks for each case. If you want to compare benchmarks with each other, mark one of the benchmarks as the baseline via [Benchmark(Baseline = true)]: BenchmarkDotNet will compare it with all of the other benchmarks. If you want to compare performance in different environments, use jobs. For example, you can run all the benchmarks on .NET Core 3.1 and Mono via [SimpleJob(RuntimeMoniker.NetCoreApp31)] and [SimpleJob(RuntimeMoniker.Mono)].

If you don't like attributes, you can call most of the APIs via the fluent style and write code like this:

ManualConfig.CreateEmpty() // A configuration for our benchmarks
    .AddJob(Job.Default // Adding first job
        .WithRuntime(ClrRuntime.Net472) // .NET Framework 4.7.2
        .WithPlatform(Platform.X64) // Run as x64 application
        .WithJit(Jit.LegacyJit) // Use LegacyJIT instead of the default RyuJIT
        .WithGcServer(true) // Use Server GC
    ).AddJob(Job.Default // Adding second job
        .AsBaseline() // It will be marked as baseline
        .WithEnvironmentVariable("Key", "Value") // Setting an environment variable
        .WithWarmupCount(0) // Disable warm-up stage
    );

If you prefer command-line experience, you can configure your benchmarks via the console arguments in any console application (other types of applications are not supported).

Automation

Reliable benchmarks always include a lot of boilerplate code.

Let's think about what you should do in a typical case. First, you should perform a pilot experiment and determine the best number of method invocations. Next, you should execute several warm-up iterations and ensure that your benchmark achieved a steady state. After that, you should execute the main iterations and calculate some basic statistics. If you calculate some values in your benchmark, you should use it somehow to prevent dead code elimination. If you use loops, you should care about the effect of the loop unrolling on your results (which may depend on the processor architecture). Once you get results, you should check for some special properties of the obtained performance distribution like multimodality or extremely high outliers. You should also evaluate the overhead of your infrastructure and deduct it from your results. If you want to test several environments, you should perform the measurements in each of them and manually aggregate the results.

If you write this code from scratch, it's easy to make a mistake and spoil your measurements. Note that it's a shortened version of the full checklist that you should follow during benchmarking: there are a lot of additional hidden pitfalls that should be handled appropriately. Fortunately, you shouldn't worry about it because BenchmarkDotNet will perform this boring and time-consuming stuff for you.

Moreover, the library can help you with some advanced tasks that you may want to perform during the investigation. For example, BenchmarkDotNet can measure the managed and native memory traffic and print disassembly listings for your benchmarks.

Reliability

A lot of hand-written benchmarks produce wrong numbers that lead to incorrect business decisions. BenchmarkDotNet protects you from most of the benchmarking pitfalls and allows achieving high measurement precision.

You shouldn't worry about the perfect number of method invocation, the number of warm-up and actual iterations: BenchmarkDotNet tries to choose the best benchmarking parameters and achieve a good trade-off between the measurement prevision and the total duration of all benchmark runs. So, you shouldn't use any magic numbers (like "We should perform 100 iterations here"), the library will do it for you based on the values of statistical metrics.

BenchmarkDotNet also prevents benchmarking of non-optimized assemblies that were built using DEBUG mode because the corresponding results will be unreliable. The library will print a warning if you have an attached debugger, if you use a hypervisor (HyperV, VMware, VirtualBox), or if you have any other problems with the current environment.

During 6+ years of development, we faced dozens of different problems that may spoil your measurements. Inside BenchmarkDotNet, there are a lot of heuristics, checks, hacks, and tricks that help you to increase the reliability of the results.

Friendliness

Analysis of performance data is a time-consuming activity that requires attentiveness, knowledge, and experience. BenchmarkDotNet performs the main part of this analysis for you and presents results in a user-friendly form.

After the experiments, you get a summary table that contains a lot of useful data about the executed benchmarks. By default, it includes only the most important columns, but they can be easily customized. The column set is adaptive and depends on the benchmark definition and measured values. For example, if you mark one of the benchmarks as a baseline, you will get additional columns that will help you to compare all the benchmarks with the baseline. By default, it always shows the Mean column, but if we detected a vast difference between the Mean and the Median values, both columns will be presented.

BenchmarkDotNet tries to find some unusual properties of your performance distributions and prints nice messages about it. For example, it will warn you in case of multimodal distribution or high outliers. In this case, you can scroll the results up and check out ASCII-style histograms for each distribution or generate beautiful png plots using [RPlotExporter].

BenchmarkDotNet doesn't overload you with data; it shows only the essential information depending on your results: it allows you to keep the summary small for primitive cases and extend it only for complicated cases. Of course, you can request any additional statistics and visualizations manually. If you don't customize the summary view, the default presentation will be as much user-friendly as possible. :)

Learn more about benchmarking

BenchmarkDotNet is not a silver bullet that magically makes all of your benchmarks correct and analyzes the measurements for you. Even if you use this library, you still should know how to design benchmark experiments and how to make correct conclusions based on the raw data. If you want to know more about benchmarking methodology and good practices, it's recommended to read a book by Andrey Akinshin (the BenchmarkDotNet project lead): "Pro .NET Benchmarking". Use this in-depth guide to correctly design benchmarks, measure key performance metrics of .NET applications, and analyze results. This book presents dozens of case studies to help you understand complicated benchmarking topics. You will avoid common pitfalls, control the accuracy of your measurements, and improve the performance of your software.

Contributions are welcome!

BenchmarkDotNet is already a stable full-featured library that allows performing performance investigation on a professional level. And it continues to evolve! We add new features all the time, but we have too many new cool ideas. Any help will be appreciated. You can develop new features, fix bugs, improve the documentation, or do some other cool stuff.

If you want to contribute, check out the Contributing guide and up-for-grabs issues. If you have new ideas or want to complain about bugs, feel free to create a new issue. Let's build the best tool for benchmarking together!

Code of Conduct

This project has adopted the code of conduct defined by the Contributor Covenant to clarify expected behavior in our community. For more information, see the .NET Foundation Code of Conduct.

Sponsors

BenchmarkDotNet is supported by the AWS Open Source Software Fund.

  • .NETFramework 6.0
    • BenchmarkDotNet.Annotations (>= 0.13.13-nightly.20240720.160)
    • CommandLineParser (>= 2.9.1)
    • Gee.External.Capstone (>= 2.3.0)
    • Iced (>= 1.17.0)
    • Microsoft.CodeAnalysis.CSharp (>= 4.1.0)
    • Microsoft.Diagnostics.Runtime (>= 2.2.332302)
    • Microsoft.Diagnostics.Tracing.TraceEvent (>= 3.1.8)
    • Microsoft.DotNet.PlatformAbstractions (>= 3.1.6)
    • Perfolizer (= 0.3.17)
    • System.Management (>= 5.0.0)
  • .NETFramework 8.0
    • BenchmarkDotNet.Annotations (>= 0.13.13-nightly.20240720.160)
    • CommandLineParser (>= 2.9.1)
    • Gee.External.Capstone (>= 2.3.0)
    • Iced (>= 1.17.0)
    • Microsoft.CodeAnalysis.CSharp (>= 4.1.0)
    • Microsoft.Diagnostics.Runtime (>= 2.2.332302)
    • Microsoft.Diagnostics.Tracing.TraceEvent (>= 3.1.8)
    • Microsoft.DotNet.PlatformAbstractions (>= 3.1.6)
    • Perfolizer (= 0.3.17)
    • System.Management (>= 5.0.0)
  • .NETStandard 2.0
    • BenchmarkDotNet.Annotations (>= 0.13.13-nightly.20240720.160)
    • CommandLineParser (>= 2.9.1)
    • Gee.External.Capstone (>= 2.3.0)
    • Iced (>= 1.17.0)
    • Microsoft.CodeAnalysis.CSharp (>= 4.1.0)
    • Microsoft.Diagnostics.Runtime (>= 2.2.332302)
    • Microsoft.Diagnostics.Tracing.TraceEvent (>= 3.1.8)
    • Microsoft.DotNet.PlatformAbstractions (>= 3.1.6)
    • Microsoft.Win32.Registry (>= 5.0.0)
    • Perfolizer (= 0.3.17)
    • System.Management (>= 5.0.0)
    • System.Numerics.Vectors (>= 4.5.0)
    • System.Reflection.Emit (>= 4.7.0)
    • System.Reflection.Emit.Lightweight (>= 4.7.0)
    • System.Threading.Tasks.Extensions (>= 4.5.4)
  • .NETFramework 6.0: 6.0.0.0
  • .NETFramework 8.0: 8.0.0.0
  • .NETStandard 2.0: 2.0.0.0

Owners

Andrey Akinshin

Authors

.NET Foundation and contributors

Project URL

https://github.com/dotnet/BenchmarkDotNet

License

Unknown

Tags

benchmark benchmarking performance

Info

1411 total downloads
4 downloads for version 0.13.13-nightly.20240720.160
Download (1.33 MB)
Download symbols (459.75 KB)
Found on the current feed only

Package history

Version Size Last updated Downloads Mirrored?
0.14.1-nightly.20241027.193 1.34 MB Sun, 27 Oct 2024 06:06:31 GMT 1
0.14.1-nightly.20241021.192 1.34 MB Mon, 21 Oct 2024 21:17:51 GMT 0
0.14.1-nightly.20241020.191 1.34 MB Sun, 20 Oct 2024 21:17:48 GMT 0
0.14.1-nightly.20241020.190 1.34 MB Sun, 20 Oct 2024 21:15:59 GMT 0
0.14.1-nightly.20241018.189 1.34 MB Fri, 18 Oct 2024 17:15:19 GMT 0
0.14.1-nightly.20240925.188 1.34 MB Wed, 25 Sep 2024 14:36:32 GMT 2
0.14.1-nightly.20240924.187 1.34 MB Tue, 24 Sep 2024 02:04:24 GMT 1
0.14.1-nightly.20240923.186 1.34 MB Mon, 23 Sep 2024 18:51:10 GMT 2
0.14.1-nightly.20240922.185 1.34 MB Sun, 22 Sep 2024 21:21:42 GMT 1
0.14.1-nightly.20240917.184 1.34 MB Tue, 17 Sep 2024 17:07:54 GMT 1
0.14.1-nightly.20240917.183 1.34 MB Tue, 17 Sep 2024 08:09:27 GMT 0
0.14.1-nightly.20240828.182 1.34 MB Wed, 28 Aug 2024 14:02:08 GMT 2
0.14.1-nightly.20240828.181 1.34 MB Wed, 28 Aug 2024 07:59:27 GMT 1
0.14.1-nightly.20240828.180 1.34 MB Wed, 28 Aug 2024 07:42:10 GMT 2
0.14.1-nightly.20240827.179 1.33 MB Tue, 27 Aug 2024 20:20:49 GMT 1
0.14.1-nightly.20240827.178 1.33 MB Tue, 27 Aug 2024 18:54:28 GMT 1
0.14.1-nightly.20240826.177 1.34 MB Mon, 26 Aug 2024 17:20:42 GMT 0
0.14.1-nightly.20240826.176 1.34 MB Mon, 26 Aug 2024 13:22:58 GMT 1
0.14.1-nightly.20240826.175 1.34 MB Mon, 26 Aug 2024 06:38:29 GMT 2
0.14.1-nightly.20240825.174 1.33 MB Sun, 25 Aug 2024 10:59:29 GMT 0
0.14.1-nightly.20240825.173 1.33 MB Sun, 25 Aug 2024 10:58:35 GMT 0
0.14.1-nightly.20240825.172 1.33 MB Sun, 25 Aug 2024 10:54:32 GMT 0
0.14.1-nightly.20240825.171 1.33 MB Sun, 25 Aug 2024 09:46:11 GMT 0
0.14.1-nightly.20240822.170 1.33 MB Thu, 22 Aug 2024 18:12:07 GMT 2
0.14.1-nightly.20240806.169 1.33 MB Tue, 06 Aug 2024 14:47:45 GMT 5
0.14.0-nightly.20240806.168 1.33 MB Tue, 06 Aug 2024 13:59:51 GMT 3
0.13.13-nightly.20240806.167 1.33 MB Tue, 06 Aug 2024 13:42:23 GMT 4
0.13.13-nightly.20240806.166 1.33 MB Tue, 06 Aug 2024 13:41:40 GMT 4
0.13.13-nightly.20240806.165 1.33 MB Tue, 06 Aug 2024 12:55:43 GMT 3
0.13.13-nightly.20240805.164 1.33 MB Mon, 05 Aug 2024 17:28:11 GMT 2
0.13.13-nightly.20240720.163 1.33 MB Sat, 20 Jul 2024 08:18:55 GMT 5
0.13.13-nightly.20240720.162 1.33 MB Sat, 20 Jul 2024 08:18:48 GMT 4
0.13.13-nightly.20240720.161 1.33 MB Sat, 20 Jul 2024 08:05:55 GMT 4
0.13.13-nightly.20240720.160 1.33 MB Sat, 20 Jul 2024 08:04:11 GMT 4
0.13.13-nightly.20240711.157 1.33 MB Thu, 11 Jul 2024 19:59:11 GMT 2
0.13.13-nightly.20240601.156 1.33 MB Sat, 01 Jun 2024 07:26:02 GMT 20
0.13.13-nightly.20240519.155 1.33 MB Sun, 19 May 2024 12:57:26 GMT 6
0.13.13-nightly.20240428.154 1.33 MB Sun, 28 Apr 2024 00:53:23 GMT 4
0.13.13-nightly.20240422.153 1.33 MB Mon, 22 Apr 2024 10:37:38 GMT 15
0.13.13-nightly.20240408.152 1.33 MB Mon, 08 Apr 2024 09:21:27 GMT 20
0.13.13-nightly.20240401.151 1.33 MB Mon, 01 Apr 2024 15:45:05 GMT 20
0.13.13-nightly.20240401.150 1.33 MB Mon, 01 Apr 2024 15:21:09 GMT 8
0.13.13-nightly.20240325.149 1.33 MB Mon, 25 Mar 2024 15:18:59 GMT 20
0.13.13-nightly.20240319.148 1.33 MB Tue, 19 Mar 2024 22:11:18 GMT 8
0.13.13-nightly.20240315.147 1.33 MB Fri, 15 Mar 2024 14:18:23 GMT 5
0.13.13-nightly.20240315.146 1.33 MB Fri, 15 Mar 2024 13:51:24 GMT 6
0.13.13-nightly.20240311.145 1.33 MB Mon, 11 Mar 2024 14:03:18 GMT 5
0.13.13-nightly.20240310.144 1.33 MB Sun, 10 Mar 2024 01:19:17 GMT 5
0.13.13-nightly.20240309.143 1.33 MB Sat, 09 Mar 2024 09:54:20 GMT 6
0.13.13-nightly.20240308.142 1.33 MB Fri, 08 Mar 2024 19:05:37 GMT 6
0.13.13-nightly.20240308.141 1.33 MB Fri, 08 Mar 2024 02:03:33 GMT 7
0.13.13-nightly.20240306.140 1.33 MB Wed, 06 Mar 2024 15:51:44 GMT 7
0.13.13-nightly.20240305.139 1.33 MB Tue, 05 Mar 2024 14:10:50 GMT 5
0.13.13-nightly.20240305.138 1.33 MB Tue, 05 Mar 2024 06:20:13 GMT 6
0.13.13-nightly.20240304.137 1.33 MB Mon, 04 Mar 2024 17:48:28 GMT 5
0.13.13-nightly.20240228.136 1.32 MB Wed, 28 Feb 2024 23:23:53 GMT 6
0.13.13-nightly.20240228.135 1.32 MB Wed, 28 Feb 2024 17:35:03 GMT 9
0.13.13-nightly.20240223.134 1.32 MB Fri, 23 Feb 2024 09:15:35 GMT 7
0.13.13-nightly.20240223.133 1.32 MB Fri, 23 Feb 2024 08:17:21 GMT 7
0.13.13-nightly.20240213.132 1.32 MB Tue, 13 Feb 2024 02:41:24 GMT 6
0.13.13-nightly.20240212.131 1.32 MB Mon, 12 Feb 2024 20:03:26 GMT 8
0.13.13-nightly.20240122.130 1.32 MB Mon, 22 Jan 2024 16:06:14 GMT 7
0.13.13-nightly.20240114.129 1.32 MB Sun, 14 Jan 2024 17:57:05 GMT 7
0.13.13-nightly.20240114.128 1.32 MB Sun, 14 Jan 2024 17:49:49 GMT 6
0.13.13-nightly.20240114.127 1.32 MB Sun, 14 Jan 2024 17:49:40 GMT 7
0.13.13-nightly.20240112.126 1.32 MB Fri, 12 Jan 2024 21:06:06 GMT 8
0.13.13-nightly.20240112.125 1.32 MB Fri, 12 Jan 2024 18:44:18 GMT 7
0.13.13-nightly.20240111.124 1.32 MB Thu, 11 Jan 2024 14:15:39 GMT 8
0.13.13-nightly.20240110.123 1.32 MB Wed, 10 Jan 2024 16:25:21 GMT 7
0.13.13-nightly.20240110.122 1.32 MB Wed, 10 Jan 2024 15:31:16 GMT 7
0.13.13-nightly.20240105.121 1.32 MB Fri, 05 Jan 2024 18:52:59 GMT 8
0.13.13-nightly.20240105.120 1.32 MB Fri, 05 Jan 2024 18:46:43 GMT 5
0.13.13-nightly.20240105.119 1.32 MB Fri, 05 Jan 2024 18:41:39 GMT 7
0.13.12-nightly.20240105.118 1.32 MB Fri, 05 Jan 2024 18:40:01 GMT 6
0.13.12-nightly.20240105.117 1.32 MB Fri, 05 Jan 2024 16:13:05 GMT 7
0.13.12-nightly.20240105.116 1.32 MB Fri, 05 Jan 2024 15:48:07 GMT 7
0.13.12-nightly.20240105.115 1.32 MB Fri, 05 Jan 2024 14:50:55 GMT 19
0.13.12-nightly.20231218.111 1.32 MB Mon, 18 Dec 2023 13:12:10 GMT 8
0.13.12-nightly.20231206.110 1.32 MB Wed, 06 Dec 2023 10:47:06 GMT 8
0.13.11-nightly.20231204.109 1.32 MB Mon, 04 Dec 2023 08:56:18 GMT 8
0.13.11-nightly.20231201.108 1.32 MB Fri, 01 Dec 2023 10:35:44 GMT 8
0.13.11-nightly.20231126.107 1.32 MB Sun, 26 Nov 2023 21:41:03 GMT 9
0.13.11-nightly.20231126.106 1.32 MB Sun, 26 Nov 2023 20:39:22 GMT 8
0.13.11-nightly.20231126.105 1.32 MB Sun, 26 Nov 2023 19:49:57 GMT 8
0.13.11-nightly.20231122.104 1.32 MB Wed, 22 Nov 2023 15:12:06 GMT 11
0.13.11-nightly.20231116.103 1.32 MB Thu, 16 Nov 2023 19:22:22 GMT 11
0.13.11-nightly.20231116.102 904.6 KB Thu, 16 Nov 2023 15:25:19 GMT 10
0.13.11-nightly.20231115.101 904.75 KB Wed, 15 Nov 2023 21:19:12 GMT 10
0.13.11-nightly.20231115.100 904.67 KB Wed, 15 Nov 2023 18:42:40 GMT 7
0.13.11-nightly.20231115.99 904.42 KB Wed, 15 Nov 2023 12:34:54 GMT 10
0.13.11-nightly.20231115.98 904.41 KB Wed, 15 Nov 2023 11:44:34 GMT 22
0.13.11-nightly.20231115.97 904.41 KB Wed, 15 Nov 2023 10:38:53 GMT 7
0.13.11-nightly.20231114.96 904.42 KB Tue, 14 Nov 2023 09:42:53 GMT 9
0.13.11-nightly.20231102.95 904.17 KB Thu, 02 Nov 2023 18:33:03 GMT 9
0.13.11-nightly.20231101.94 904.13 KB Wed, 01 Nov 2023 16:30:20 GMT 8
0.13.10-nightly.20231101.93 904.14 KB Wed, 01 Nov 2023 16:13:43 GMT 23
0.13.10-nightly.20231027.92 903.52 KB Fri, 27 Oct 2023 01:44:42 GMT 7
0.13.10-nightly.20231019.91 903.52 KB Thu, 19 Oct 2023 16:21:50 GMT 8
0.13.10-nightly.20231019.90 903.48 KB Thu, 19 Oct 2023 06:58:00 GMT 10
0.13.10-nightly.20231018.89 903.44 KB Wed, 18 Oct 2023 16:00:54 GMT 9
0.13.10-nightly.20231016.88 903.45 KB Mon, 16 Oct 2023 13:50:20 GMT 10
0.13.10-nightly.20231012.87 903.43 KB Thu, 12 Oct 2023 13:18:31 GMT 8
0.13.10-nightly.20231010.86 903.37 KB Tue, 10 Oct 2023 12:37:04 GMT 9
0.13.10-nightly.20231005.85 903.27 KB Thu, 05 Oct 2023 15:26:00 GMT 13
0.13.9-nightly.20231005.84 903.26 KB Thu, 05 Oct 2023 15:17:05 GMT 9
0.13.9-nightly.20231005.83 903.25 KB Thu, 05 Oct 2023 15:12:07 GMT 11
0.13.9-nightly.20231005.82 903.28 KB Thu, 05 Oct 2023 13:41:23 GMT 9
0.13.9-nightly.20231005.81 903.26 KB Thu, 05 Oct 2023 13:29:32 GMT 7
0.13.9-nightly.20231003.80 903.63 KB Tue, 03 Oct 2023 17:20:49 GMT 8
0.13.9-nightly.20231003.79 903.63 KB Tue, 03 Oct 2023 17:18:04 GMT 11
0.13.9-nightly.20231003.78 903.64 KB Tue, 03 Oct 2023 17:01:42 GMT 5
0.13.9-nightly.20231003.77 903.13 KB Tue, 03 Oct 2023 16:34:21 GMT 8
0.13.9-nightly.20231003.76 902.88 KB Tue, 03 Oct 2023 15:50:31 GMT 7
0.13.9-nightly.20230923.75 902.9 KB Sat, 23 Sep 2023 18:15:09 GMT 7
0.13.9-nightly.20230922.74 902.9 KB Fri, 22 Sep 2023 21:39:05 GMT 19
0.13.9-nightly.20230922.73 902.9 KB Fri, 22 Sep 2023 21:37:15 GMT 13
0.13.9-nightly.20230922.72 902.79 KB Fri, 22 Sep 2023 09:44:35 GMT 26
0.13.9-nightly.20230921.71 902.77 KB Thu, 21 Sep 2023 12:55:58 GMT 9
0.13.9-nightly.20230908.70 900.72 KB Fri, 08 Sep 2023 09:38:28 GMT 9
0.13.8-nightly.20230908.69 900.71 KB Fri, 08 Sep 2023 09:34:42 GMT 10
0.13.8-nightly.20230908.68 900.71 KB Fri, 08 Sep 2023 09:21:27 GMT 9
0.13.8-nightly.20230901.67 900.71 KB Fri, 01 Sep 2023 02:48:56 GMT 17
0.13.8-nightly.20230829.66 899.75 KB Tue, 29 Aug 2023 15:09:54 GMT 8
0.13.8-nightly.20230827.65 899.51 KB Sun, 27 Aug 2023 14:18:46 GMT 9
0.13.8-nightly.20230825.64 887.06 KB Fri, 25 Aug 2023 09:18:23 GMT 10
0.13.8-nightly.20230822.63 886.58 KB Tue, 22 Aug 2023 19:28:23 GMT 8
0.13.8-nightly.20230818.62 886.57 KB Fri, 18 Aug 2023 23:28:48 GMT 9
0.13.8-nightly.20230817.61 886.46 KB Thu, 17 Aug 2023 12:43:29 GMT 11
0.13.8-nightly.20230810.60 886.46 KB Thu, 10 Aug 2023 09:43:08 GMT 8
0.13.8-nightly.20230804.59 886.44 KB Fri, 04 Aug 2023 11:10:02 GMT 5
0.13.8-nightly.20230804.58 886.43 KB Fri, 04 Aug 2023 10:39:09 GMT 11
0.13.7-nightly.20230802.57 886.43 KB Wed, 02 Aug 2023 21:27:36 GMT 9
0.13.7-nightly.20230731.56 886.45 KB Mon, 31 Jul 2023 14:33:04 GMT 11
0.13.7-nightly.20230729.55 886.48 KB Sat, 29 Jul 2023 09:59:39 GMT 5
0.13.7-nightly.20230728.54 886.47 KB Fri, 28 Jul 2023 12:51:11 GMT 11
0.13.7-nightly.20230728.53 886.46 KB Fri, 28 Jul 2023 11:50:42 GMT 11
0.13.7-nightly.20230728.52 886.48 KB Fri, 28 Jul 2023 11:48:33 GMT 21
0.13.7-nightly.20230728.49 886.47 KB Fri, 28 Jul 2023 09:06:17 GMT 7
0.13.7-nightly.20230725.46 886.4 KB Tue, 25 Jul 2023 07:45:31 GMT 8
0.13.7-nightly.20230724.45 886.4 KB Mon, 24 Jul 2023 11:24:36 GMT 9
0.13.7-nightly.20230722.43 886.25 KB Sat, 22 Jul 2023 10:50:38 GMT 8
0.13.7-nightly.20230721.42 886.24 KB Fri, 21 Jul 2023 12:41:58 GMT 9
0.13.7-nightly.20230720.41 886.25 KB Thu, 20 Jul 2023 17:57:10 GMT 7
0.13.7-nightly.20230720.40 886.25 KB Thu, 20 Jul 2023 15:36:52 GMT 8
0.13.7-nightly.20230720.39 886.25 KB Thu, 20 Jul 2023 15:31:51 GMT 7
0.13.7-nightly.20230720.38 886.24 KB Thu, 20 Jul 2023 07:46:56 GMT 9
0.13.7-nightly.20230719.37 885.94 KB Wed, 19 Jul 2023 21:58:41 GMT 7
0.13.7-nightly.20230719.36 885.97 KB Wed, 19 Jul 2023 08:46:30 GMT 9
0.13.7-nightly.20230717.35 885.98 KB Mon, 17 Jul 2023 08:16:56 GMT 13
0.13.7-nightly.20230713.34 885.99 KB Thu, 13 Jul 2023 10:04:49 GMT 5
0.13.7-nightly.20230712.33 885.92 KB Wed, 12 Jul 2023 15:36:51 GMT 20
0.13.7-nightly.20230712.32 885.92 KB Wed, 12 Jul 2023 14:32:55 GMT 8
0.13.7-nightly.20230711.31 885.76 KB Tue, 11 Jul 2023 10:48:38 GMT 16
0.13.7-nightly.20230711.30 885.76 KB Tue, 11 Jul 2023 10:37:21 GMT 8
0.13.6-nightly.20230710.29 885.76 KB Mon, 10 Jul 2023 07:48:04 GMT 7
0.13.6-nightly.20230709.28 885.78 KB Sun, 09 Jul 2023 16:54:42 GMT 13
0.13.6-nightly.20230709.27 885.78 KB Sun, 09 Jul 2023 16:41:48 GMT 11
0.13.6-nightly.20230709.26 885.76 KB Sun, 09 Jul 2023 12:52:25 GMT 11
0.13.6-nightly.20230709.25 885.77 KB Sun, 09 Jul 2023 10:08:06 GMT 8
0.13.6-nightly.20230709.24 885.8 KB Sun, 09 Jul 2023 09:55:15 GMT 8
0.13.6-nightly.20230708.23 885.8 KB Sat, 08 Jul 2023 02:25:11 GMT 7
0.13.6-nightly.20230708.22 885.79 KB Sat, 08 Jul 2023 02:20:38 GMT 8
0.13.5-nightly.20230707.21 885.8 KB Fri, 07 Jul 2023 17:55:25 GMT 10
0.13.5-nightly.20230707.20 885.79 KB Fri, 07 Jul 2023 17:52:12 GMT 8
0.13.5-nightly.20230707.19 885.8 KB Fri, 07 Jul 2023 15:27:59 GMT 9
0.13.5-nightly.20230707.18 885.8 KB Fri, 07 Jul 2023 14:25:52 GMT 21
0.13.5-nightly.20230707.17 885.8 KB Fri, 07 Jul 2023 14:16:35 GMT 11
0.13.5-nightly.20230707.16 885.79 KB Fri, 07 Jul 2023 14:09:15 GMT 9
0.13.5-nightly.20230707.15 885.81 KB Fri, 07 Jul 2023 13:53:42 GMT 9
0.13.5-nightly.20230707.14 885.79 KB Fri, 07 Jul 2023 13:49:45 GMT 12
0.13.5-nightly.20230707.13 885.79 KB Fri, 07 Jul 2023 13:35:47 GMT 8
0.13.5-nightly.20230707.12 885.8 KB Fri, 07 Jul 2023 12:21:26 GMT 7
0.13.5-nightly.20230706.11 885.79 KB Thu, 06 Jul 2023 16:58:49 GMT 13
0.13.5-nightly.20230706.10 885.8 KB Thu, 06 Jul 2023 10:38:39 GMT 9
0.13.5-nightly.20230706.9 885.42 KB Thu, 06 Jul 2023 10:33:21 GMT 10
0.13.5-nightly.20230706.8 885.42 KB Thu, 06 Jul 2023 10:21:47 GMT 6
0.13.5-nightly.20230706.7 885.42 KB Thu, 06 Jul 2023 09:58:55 GMT 10
0.13.5-nightly.20230705.6 885.42 KB Wed, 05 Jul 2023 19:29:26 GMT 9