SixLabors / ImageSharp

:camera: A modern, cross-platform, 2D Graphics library for .NET
https://sixlabors.com/products/imagesharp/
Other
7.34k stars 847 forks source link

Update to net8 #2583

Closed stefannikolei closed 9 months ago

stefannikolei commented 9 months ago

Prerequisites

Description

JimBobSquarePants commented 9 months ago

Thanks for this. You might want to put a pause on it though until we ship v3.1 We'll need to update SharedInfrastructure submodule following that.

stefannikolei commented 9 months ago

@JimBobSquarePants should we run the arm tests before we merge this?

JimBobSquarePants commented 9 months ago

@stefannikolei triggered.

stefannikolei commented 9 months ago

I just ran the JpegEncoder tests against .NET6 and .NET8. Those look promising.


.NET8

BenchmarkDotNet v0.13.10, macOS Sonoma 14.1.2 (23B92) [Darwin 23.1.0]
Intel Core i9-9880H CPU 2.30GHz, 1 CPU, 16 logical and 8 physical cores
.NET SDK 8.0.100
  [Host]     : .NET 8.0.0 (8.0.23.53103), X64 RyuJIT AVX2
  DefaultJob : .NET 8.0.0 (8.0.23.53103), X64 RyuJIT AVX2

| Method                              | Mean      | Error     | StdDev    |
|------------------------------------ |----------:|----------:|----------:|
| 'Baseline 4:4:4 Interleaved'        | 11.185 ms | 0.3432 ms | 0.9957 ms |
| 'Baseline 4:2:0 Interleaved'        |  8.775 ms | 0.1736 ms | 0.4355 ms |
| 'Baseline 4:0:0 (grayscale)'        |  1.254 ms | 0.0173 ms | 0.0135 ms |
| 'Progressive 4:2:0 Non-Interleaved' | 11.796 ms | 0.2352 ms | 0.3297 ms |

.NET6

BenchmarkDotNet=v0.13.0, OS=macOS 14.1.2 (23B92) [Darwin 23.1.0]
Intel Core i9-9880H CPU 2.30GHz, 1 CPU, 16 logical and 8 physical cores
.NET SDK=8.0.100
  [Host]     : .NET 6.0.21 (6.0.2123.36311), X64 RyuJIT
  DefaultJob : .NET 6.0.21 (6.0.2123.36311), X64 RyuJIT

|                              Method |      Mean |     Error |    StdDev |
|------------------------------------ |----------:|----------:|----------:|
|        'Baseline 4:4:4 Interleaved' | 18.003 ms | 0.3533 ms | 0.6636 ms |
|        'Baseline 4:2:0 Interleaved' | 11.986 ms | 0.2339 ms | 0.3279 ms |
|        'Baseline 4:0:0 (grayscale)' |  2.181 ms | 0.0398 ms | 0.0426 ms |
| 'Progressive 4:2:0 Non-Interleaved' | 16.453 ms | 0.3239 ms | 0.4211 ms |
JimBobSquarePants commented 9 months ago

Just did a quick test using the new V4 alpha comparing against other frameworks. Lots of good, free performance there.

I can't wait to get stuck in and having a go implementing as much of the new SIMD APIs as possible.

image