Библиотека шарписта | C#, F#, .NET, ASP.NET
22.6K subscribers
2.41K photos
39 videos
85 files
4.6K links
Все самое полезное для C#-разработчика в одном канале.

По рекламе: @proglib_adv

Учиться у нас: https://proglib.io/w/b60af5a4

Для обратной связи: @proglibrary_feeedback_bot

РКН: https://gosuslugi.ru/snet/67a5c81cdc130259d5b7fead
Download Telegram
🤔 Newtownsoft vs System.Text.Json

Как вам производительность встроенного инструмента для сериализации и десериализации JSON?

#csharp #benchmarks by Nabi Karampoor
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥55👍5🥱41
From_Junior_to_Genius_an_optimization_story_by_Israel_Lot_ITNEXT.pdf
8.5 MB
🤔 Что будет, если разработчики разного уровня (джун, мидл, сеньор, хакер, эксперт и гений) реализуют простой метод вычисления контрольной суммы?

Получится довольно любопытная история оптимизации. Версия джуна выглядит следующим образом👇


public static uint Checksum(ReadOnlySpan<byte> arr)
{
if (arr.Length == 0) return 0;

uint sum0 = 0, sum1 = 0, sum2 = 0, sum3 = 0;

for(var i = 0; i<arr.Length; i++)
{
switch (i % 4)
{
case 0: sum0 += arr[i]; break;
case 1: sum1 += arr[i]; break;
case 2: sum2 += arr[i]; break;
case 3: sum3 += arr[i]; break;
}
}

var sum = sum3+ (sum2 << 8) + (sum1 << 16) + (sum0 << 24);

return sum;
}


Интересно, как этот простой метод можно существенно улучшить и оптимизировать? Тогда читайте подробнее — вас ждет много кода и бенчмарков.

#csharp #benchmarks
Please open Telegram to view this post
VIEW IN TELEGRAM
👍112🔥1