Skip to content

DMISharp 3.0.0

Latest

Choose a tag to compare

@bobbah bobbah released this 10 Jul 02:10

This release brings support for .NET 10 as well as various optimizations. Benchmarks compared to DMISharp 2.1.0 are found below.

Ratios use DMISharp 2.1.0 on .NET 8.0 as the baseline. Lower mean time and allocation values are better.

Method Runtime DMISharp Version Mean Error StdDev Ratio RatioSD Gen0 Gen1 Gen2 Allocated Alloc Ratio
ReadSmallDMIFile .NET 8.0 2.1.0 485.4 μs 47.98 μs 7.43 μs 1.00 0.02 1.9531 - - 63.74 KB 1.00
ReadSmallDMIFile .NET 8.0 3.0.0 441.5 μs 8.58 μs 12.84 μs 0.91 0.03 0.9766 0.4883 - 36.32 KB 0.57
ReadSmallDMIFile .NET 10.0 3.0.0 441.6 μs 8.70 μs 19.45 μs 0.91 0.04 - - - 13.96 KB 0.22
ReadLargeDMIFile .NET 8.0 2.1.0 19,115.4 μs 2,269.97 μs 589.50 μs 1.00 0.04 343.7500 312.5000 125.0000 6,069.40 KB 1.00
ReadLargeDMIFile .NET 8.0 3.0.0 13,905.4 μs 134.34 μs 119.09 μs 0.73 0.02 1,281.2500 1,281.2500 1,281.2500 100.71 KB 0.02
ReadLargeDMIFile .NET 10.0 3.0.0 8,358.7 μs 163.64 μs 160.72 μs 0.44 0.01 1,156.2500 1,156.2500 1,156.2500 100.98 KB 0.02
SortDMIFile .NET 8.0 2.1.0 291,293.6 μs 9,131.28 μs 2,371.36 μs 1.00 0.01 1,000.0000 1,000.0000 1,000.0000 4,518.67 KB 1.00
SortDMIFile .NET 8.0 3.0.0 288,989.7 μs 5,266.34 μs 4,926.14 μs 0.99 0.02 1,000.0000 1,000.0000 1,000.0000 4,100.63 KB 0.91
SortDMIFile .NET 10.0 3.0.0 263,232.9 μs 4,763.20 μs 4,222.46 μs 0.90 0.02 1,000.0000 1,000.0000 1,000.0000 4,044.31 KB 0.90
WriteAnimations .NET 8.0 2.1.0 29,505.0 μs 1,729.35 μs 267.62 μs 1.00 0.01 4,531.2500 4,531.2500 4,531.2500 3,503.87 KB 1.00
WriteAnimations .NET 8.0 3.0.0 10,378.6 μs 185.48 μs 164.43 μs 0.35 0.01 46.8750 31.2500 31.2500 422.41 KB 0.12
WriteAnimations .NET 10.0 3.0.0 5,205.4 μs 101.72 μs 113.06 μs 0.18 0.00 23.4375 15.6250 15.6250 420.92 KB 0.12
AnimationOfBarsignsConstructsCorrectly .NET 8.0 2.1.0 12,412.9 μs 146.01 μs 22.59 μs 1.00 0.00 2,000.0000 2,000.0000 2,000.0000 734.40 KB 1.00
AnimationOfBarsignsConstructsCorrectly .NET 8.0 3.0.0 7,882.9 μs 81.33 μs 67.92 μs 0.64 0.01 15.6250 15.6250 15.6250 73.02 KB 0.10
AnimationOfBarsignsConstructsCorrectly .NET 10.0 3.0.0 3,920.5 μs 74.63 μs 85.95 μs 0.32 0.01 15.6250 15.6250 15.6250 72.69 KB 0.10
AnimationOfSingularityConstructsCorrectly .NET 8.0 2.1.0 260,949.4 μs 21,849.99 μs 3,381.31 μs 1.00 0.02 10,000.0000 9,000.0000 6,000.0000 121,454.19 KB 1.00
AnimationOfSingularityConstructsCorrectly .NET 8.0 3.0.0 261,885.9 μs 2,771.54 μs 2,456.90 μs 1.00 0.01 5,000.0000 4,500.0000 500.0000 119,305.61 KB 0.98
AnimationOfSingularityConstructsCorrectly .NET 10.0 3.0.0 263,810.1 μs 5,225.86 μs 4,632.59 μs 1.01 0.02 5,000.0000 4,500.0000 500.0000 119,300.50 KB 0.98
WritePaletteDMIFile (air_meter.dmi) .NET 8.0 2.1.0 2,629.7 μs 448.54 μs 116.49 μs 1.00 0.06 - - - 98.80 KB 1.00
WritePaletteDMIFile (air_meter.dmi) .NET 8.0 3.0.0 2,521.7 μs 50.09 μs 83.70 μs 0.96 0.05 - - - 78.25 KB 0.79
WritePaletteDMIFile (air_meter.dmi) .NET 10.0 3.0.0 2,488.7 μs 48.57 μs 81.16 μs 0.95 0.05 - - - 76.70 KB 0.78
WritePaletteDMIFile (small.dmi) .NET 8.0 2.1.0 4,759.7 μs 550.90 μs 85.25 μs 1.00 0.02 - - - 90.91 KB 1.00
WritePaletteDMIFile (small.dmi) .NET 8.0 3.0.0 4,709.0 μs 74.20 μs 65.78 μs 0.99 0.02 - - - 75.48 KB 0.83
WritePaletteDMIFile (small.dmi) .NET 10.0 3.0.0 4,480.8 μs 87.80 μs 82.13 μs 0.94 0.02 - - - 73.93 KB 0.81

What's Changed

  • Update GitHub Actions versions by @bobbah in #19
  • Optimize palette color lookup by @bobbah in #17
  • Optimize GIF frame construction by @bobbah in #16
  • Optimize PNG save pipeline by @bobbah in #14
  • Optimize state collection operations by @bobbah in #15
  • Optimize DMI loading allocations by @bobbah in #18
  • Upgrade to .NET 10 and latest dependencies by @bobbah in #20

Full Changelog: 2.1.0...3.0.0