Skip to content

A csv parser written while eating a burrito. Meant to be lean as possible

License

Notifications You must be signed in to change notification settings

ryzngard/Chipotle.CSV

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

37 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Chipotle.CSV

A csv parser written while eating a burrito. Meant to be lean as possible. A project to try out the new System.IO.Pipelines and Memory/Span features for dotnet

Usage

Just run dotnet build in the root directory.

Benchmarks

All benchmarks are made with Benchmark.NET run with dotnet run -c release --filter * --project .\Benchmarks\Benchmarks.csproj

BenchmarkDotNet=v0.11.0, OS=Windows 10.0.17134.228 (1803/April2018Update/Redstone4)
Intel Core i7-8650U CPU 1.90GHz (Max: 1.91GHz) (Kaby Lake R), 1 CPU, 8 logical and 4 physical cores
.NET Core SDK=2.1.302
  [Host]     : .NET Core 2.0.9 (CoreCLR 4.6.26614.01, CoreFX 4.6.26614.01), 64bit RyuJIT
  DefaultJob : .NET Core 2.0.9 (CoreCLR 4.6.26614.01, CoreFX 4.6.26614.01), 64bit RyuJIT

Method pair method Mean Error StdDev Min Max Median Gen 0 Gen 1 Gen 2 Allocated
Parse (BytePipeline, KB16) ? 725.11 us 0.7205 us 0.6739 us 724.04 us 726.03 us 725.16 us 99.6094 - - 420792 B
Parse (BytePipeline, KB2) ? 50.05 us 0.1250 us 0.1108 us 49.85 us 50.19 us 50.08 us 6.9580 - - 29440 B
Parse (BytePipeline, KB32) ? 1,513.73 us 3.5119 us 3.1132 us 1,509.85 us 1,521.67 us 1,513.18 us 208.9844 - - 878944 B
Parse (BytePipeline, KB4) ? 149.30 us 0.3670 us 0.3433 us 148.79 us 150.04 us 149.40 us 20.5078 - - 86680 B
Parse (BytePipeline, KB8) ? 362.66 us 0.5711 us 0.5342 us 361.66 us 363.30 us 362.79 us 50.2930 - - 210992 B
Parse (BytePipeline, MB4) ? NA NA NA NA NA NA N/A N/A N/A N/A
Parse (CsvHelper, KB16) ? 364.16 us 7.2279 us 7.7337 us 356.11 us 376.04 us 360.20 us 66.4063 - - 278791 B
Parse (CsvHelper, KB2) ? 33.95 us 0.1133 us 0.1059 us 33.77 us 34.13 us 33.94 us 9.0332 - - 37932 B
Parse (CsvHelper, KB32) ? 745.46 us 16.8149 us 18.6897 us 732.27 us 803.67 us 736.51 us 132.8125 - - 559869 B
Parse (CsvHelper, KB4) ? 83.92 us 1.4534 us 1.9894 us 81.21 us 88.95 us 83.56 us 17.3340 - - 73057 B
Parse (CsvHelper, KB8) ? 185.44 us 1.1783 us 0.9839 us 184.25 us 187.38 us 185.00 us 35.1563 - - 148534 B
Parse (CsvHelper, MB4) ? 133,803.13 us 1,640.0709 us 1,534.1232 us 131,244.05 us 136,105.33 us 133,370.65 us 23500.0000 - - 99561318 B
Parse (MemoryPool, KB16) ? 862.24 us 28.7855 us 83.5118 us 673.20 us 1,050.72 us 852.64 us 95.7031 - - 7696 B
Parse (MemoryPool, KB2) ? 63.71 us 2.1541 us 6.2494 us 49.74 us 78.51 us 63.73 us 7.2021 - - 1792 B
Parse (MemoryPool, KB32) ? 1,919.48 us 73.1862 us 215.7913 us 1,449.06 us 2,489.53 us 1,902.48 us 203.1250 - - 14679 B
Parse (MemoryPool, KB4) ? 210.81 us 8.8338 us 25.7685 us 159.13 us 269.33 us 211.32 us 20.0195 - - 2656 B
Parse (MemoryPool, KB8) ? 508.63 us 15.9451 us 47.0145 us 424.95 us 626.13 us 511.38 us 47.8516 - - 4528 B
Parse (MemoryPool, MB4) ? 254,772.58 us 8,758.9850 us 25,411.4038 us 187,095.40 us 317,383.80 us 256,635.77 us 40000.0000 - - 2639088 B
Parse (SMP, KB16) ? 454.15 us 9.0468 us 20.0472 us 421.09 us 504.33 us 452.61 us 15.1367 - - 7694 B
Parse (SMP, KB2) ? 40.75 us 0.7790 us 1.7098 us 37.61 us 44.17 us 40.48 us 1.8921 - - 1792 B
Parse (SMP, KB32) ? 965.44 us 21.6478 us 43.7296 us 895.24 us 1,081.83 us 952.43 us 27.3438 - - 14608 B
Parse (SMP, KB4) ? 107.70 us 2.9513 us 8.6092 us 91.10 us 131.43 us 108.60 us 4.1504 - - 2656 B
Parse (SMP, KB8) ? 235.57 us 4.7789 us 10.7867 us 214.27 us 261.38 us 234.00 us 7.3242 - - 4525 B
Parse (SMP, MB4) ? 127,794.82 us 4,312.1072 us 12,646.6639 us 107,042.88 us 156,593.48 us 127,782.88 us 2600.0000 1000.0000 1000.0000 2639085 B
Find_Last_4MB ? BytePipeline NA NA NA NA NA NA N/A N/A N/A N/A
Find_Last_4MB ? CsvHelper 139,917.19 us 2,790.6828 us 2,985.9990 us 136,872.48 us 146,297.15 us 138,747.95 us 23500.0000 - - 99561358 B
Find_Last_4MB ? MemoryPool 223,431.73 us 9,200.4160 us 26,983.2276 us 177,871.30 us 298,649.40 us 218,438.80 us 82666.6667 - - 130621720 B
Find_Last_4MB ? SMP 182,704.41 us 3,880.6883 us 6,796.7126 us 172,119.50 us 202,838.27 us 180,633.63 us 15000.0000 2666.6667 1333.3333 57659232 B

Benchmarks with issues: CsvBenchmarks.Parse: DefaultJob [pair=(BytePipeline, MB4)] CsvBenchmarks.Find_Last_4MB: DefaultJob [method=BytePipeline]

About

A csv parser written while eating a burrito. Meant to be lean as possible

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published