Доброго времени суток тебе, странник! Добро пожаловать в Dev Jungles Stories!
Компьютеры развиваются, а приложения все тормозят. Часто это потому, что разработчикам не хватает квалификации заточить свое приложение так, что бы оно работало достаточно быстро.
В стриме ранее () я рассказал о таком инструменте как бенчмаркинг при помощи библиотеки BenchmarkDotNet, только вот что делать, если приложение большое, тормозящее флоу тоже большое и вы даже не знаете с чего начать.
В этом случае на помощь приходят профилировщики в целом и dotTrace в частности.
Разбирать буду на примере тестового задания, что прислали моему другу какое-то время назад. Задание не очень сложное, но моментов для оптимизации интересных много, тем более что от него этого ожидали.
А покажу я вам конструкцию C#, которая ускорила программу вдвое. Ref struct Span
Что ж, не будем долго тянуть, вперед!
Полная версия тут:
Telegram канал Dev Jungles -
Поддержать канал можно:
- Спонсорством на YouTube
- Переводом на карту или пополнением банки монобанка:
Dev Jungles YouTube Channel Fund
Номер карты банки:
5375 4112 0230 1466
- Или криптой:
Binance Id: 479881646
BTC - 18C3jsFYwviN5FvzpAt4uMWRfUeVKvdWxy
ETH - 0x2903f63ba9009732272e91a299053b9d7b623216
USDT on ERC20 - 0x2903f63ba9009732272e91a299053b9d7b623216
USDT on TRC20 - TSmS5RzQKbWdxZkoM2oRo9HK8FYBaq744T
LTC - LN3CkrnvZLZTXDUhqTy1gUKMVpLjEPA4G2
DOGE - DPwon439jf3axVSBwyuXso6z7CivuJF655
AAVE - 0x2903f63ba9009732272e91a299053b9d7b623216
Waves - 3P8D57Zw7CrqW2o7dHpvZR2UzAzQRFA2kZd
Тайм-коды:
00:00 - Тизер
00:30 - Сортировка файлов и оптимизация конструктора класса Line
01:32 - Сплит
02:50 - Избавляемся от substring. Метод AsSpan
08:38 - Наставления по отчету оптимизации в два раза
14:14 - read-only ref struct
{"parent": "B9v7pdfhUYw"}