Home

Awesome

Sylvan Benchmarks

This repository contains benchmarks for my collection of Sylvan .NET libraries, comparing them with other libraries in the .NET ecosystem. The benchmarks are written using BenchmarkDotNet. The various libraries provide different APIs, so the while each benchmark has slightly different construction, I believe they provide a fair comparison.
If any of the benchmarks are found to be incorrectly setup, I'd happily welcome a pull request with a fix.

Many of the benchmarks in this collection use sample "Sales Record" data files from excelbianalytics.com. This files contains 14 columns of multiple data types including string, integer, date, and decimal.

Running benchmarks

benchmark.cmd

This will compile and run the benchmark project, which will then present a selection for which benchmark set to run.

Benchmark Environment

Benchmark results were updated with latest package versions as of Nov 14, 2023, as well as updating to .NET 8.0.

The benchmark results reported here were run with the following configuration, unless otherwise noted:

BenchmarkDotNet v0.13.10, Windows 10 (10.0.19045.3570/22H2/2022Update)
Intel Core i7-7700K CPU 4.20GHz (Kaby Lake), 1 CPU, 8 logical and 4 physical cores
.NET SDK 8.0.100
  [Host] : .NET 8.0.0 (8.0.23.53103), X64 RyuJIT AVX2

CSV Reader Benchmarks

Benchmarks for libraries that implement CSV readers.

CSV Writer Benchmarks

Benchmarks for libraries that implement CSV writers.

Excel Reader Benchmarks

Benchmarks for Excel data reader libraries processing .xlsx, .xlsb, and xls files.

Excel Writer Benchmarks

Benchmarks for Excel libraries writing .xlsx files.

XBase Reader Benchmarks

Benchmarks for .dbf data reader libraries.