|
9 | 9 | Привет! Это обертка над HttpClient для работы с S3 хранилищами. Мотивация создания была простейшей - я не понимал, |
10 | 10 | почему клиенты [AWS](https://docs.aws.amazon.com/sdk-for-net/v3/developer-guide/welcome.html) |
11 | 11 | и [Minio](https://github.com/minio/minio-dotnet) едят так много памяти . Результат моих экспериментов: скорость |
12 | | -почти как у Minio, а памяти потребляю почти в 200 раз меньше, чем клиент для AWS. На Windows. На Alpine и Debian (если запустить бенчмарк в контейнере) результаты сильно скромнее - в 7 раз меньше памяти, чем клиент на AWS. Интересно, кстати, почему. |
| 12 | +почти как у Minio, а памяти потребляю почти в 200 раз меньше, чем клиент для AWS. |
13 | 13 |
|
14 | 14 | ```ini |
15 | | -BenchmarkDotNet v0.13.12, Windows 11 (10.0.23606.1000) |
16 | | -13th Gen Intel Core i9-13905H, 1 CPU, 20 logical and 14 physical cores |
17 | | -.NET SDK 8.0.100 |
18 | | -.NET 8.0 : .NET 8.0.0 (8.0.23.53103), X64 RyuJIT AVX2 |
| 15 | +BenchmarkDotNet v0.13.12, Debian GNU/Linux 12 (bookworm) (container) |
| 16 | +Unknown processor |
| 17 | +.NET SDK 8.0.204 |
| 18 | +[Host] : .NET 8.0.4 (8.0.424.16909), Arm64 RyuJIT AdvSIMD |
| 19 | +.NET 8.0 : .NET 8.0.4 (8.0.424.16909), Arm64 RyuJIT AdvSIMD |
19 | 20 |
|
20 | | -Job=.NET 8.0 Runtime=.NET 8.0 |
| 21 | +Job=.NET 8.0 Runtime=.NET 8.0 |
21 | 22 | ``` |
22 | | - |
23 | | -| Method | Mean | Error | StdDev | Ratio | RatioSD | Gen0 | Gen1 | Allocated | Alloc Ratio | |
24 | | -|---------|--------:|---------:|---------:|------:|--------:|-----------:|----------:|-------------:|------------:| |
25 | | -| Aws | 2.458 s | 0.0491 s | 0.1002 s | 1.60 | 0.17 | 16000.0000 | 5000.0000 | 202247.9 KB | 308.06 | |
26 | | -| Minio | 1.729 s | 0.0329 s | 0.0737 s | 1.12 | 0.11 | - | - | 279651.64 KB | 425.96 | |
27 | | -| Storage | 1.569 s | 0.0465 s | 0.1370 s | 1.00 | 0.00 | - | - | 656.52 KB | 1.00 | |
| 23 | +| Method | Mean | Error | StdDev | Ratio | RatioSD | Gen0 | Gen1 | Allocated | Alloc Ratio | |
| 24 | +|-------- |--------:|---------:|---------:|------:|--------:|-----------:|----------:|-------------:|------------:| |
| 25 | +| Aws | 1.51 s | 0.030 s | 0.035 s | 1.42 | 0.03 | 80000.00 | 5000.00 | 201710 KB | 420.92 | |
| 26 | +| Minio | 1.48 s | 0.027 s | 0.023 s | 1.39 | 0.02 | - | - | 279524 KB | 583.30 | |
| 27 | +| Storage | 1.06 s | 0.014 s | 0.013 s | 1.00 | 0.00 | - | - | 479 KB | 1.00 | |
28 | 28 |
|
29 | 29 | ## Создание клиента |
30 | 30 |
|
@@ -171,3 +171,7 @@ Console.WriteLine("Файл удалён, если он, конечно, сущ |
171 | 171 | 4. Свойство `BigFilePath` файла `appsettings.json` сейчас не заполнено. Его можно использвоать для загрузки реального |
172 | 172 | файла (больше 100МБ). Если свойство не заполнено, то тест сгенерирует случайную последовательность байт размером |
173 | 173 | 123МБ в памяти. |
| 174 | + |
| 175 | +## Вопросы |
| 176 | + |
| 177 | +У меня есть канал в TG: [@csharp_gepard](https://t.me/csharp_gepard/91). К нему привязан чат - вопросы можно задавать в чате, либо в любом из последних постов. |
0 commit comments