string.Contains(char)
vs. string.Contains(string)
: когда производительность находишь там, где вообще не ждешь #dotnet #csharp #benchmarks #tip by Сергей Тепляков
Please open Telegram to view this post
VIEW IN TELEGRAM
🥱21👍14
#чтопроисходит
Please open Telegram to view this post
VIEW IN TELEGRAM
👍19🔥4
🔸 Выпуск 1: System Design. Подготовка к сложному интервью
🔸 Выпуск 2: масштабирование от нуля до миллионов пользователей
🔸 Выпуск 3: приблизительные оценки
🔸 Выпуск 4: общие принципы прохождения интервью
🔸 Выпуск 5: проектирование ограничителя трафика
🔸 Выпуск 6: согласованное хеширование
🔸 Выпуск 7: проектирование хранилища типа «ключ-значение»
#подкасты
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥28👍2😁1
🤔 Как получить ассемблерный код, сгенерированный JIT для C#-метода?
Когда вы выполняете .NET-метод, JIT компилирует его в машинный код. Этот нативный код затем выполняется процессором.
Если у вас вдруг возникла необходимость исследовать сгенерированный ассемблерный код, сделать это можно несколькими способами:
✅ Использовать переменную окружения
✅ Использовать расширение для Visual Studio Disasmo
✅ Использовать онлайн-сервис Sharplab, если под рукой нет других инструментов
Когда вы выполняете .NET-метод, JIT компилирует его в машинный код. Этот нативный код затем выполняется процессором.
Если у вас вдруг возникла необходимость исследовать сгенерированный ассемблерный код, сделать это можно несколькими способами:
✅ Использовать переменную окружения
DOTNET_JitDisasm
(.NET 7+)✅ Использовать расширение для Visual Studio Disasmo
✅ Использовать онлайн-сервис Sharplab, если под рукой нет других инструментов
👍13❤3🔥2
This media is not supported in your browser
VIEW IN TELEGRAM
Сам виноват, но быстро исправился и не потерял атмосферу!
#жиза
Please open Telegram to view this post
VIEW IN TELEGRAM
😁63👍3❤2
🤔 Когда она завершается, надо точно понимать, куда вернуть управление — в какой конкретно шаг. Поэтому все шаги нумеруются и компилятор очень строго следит за тем куда можно перейти. Такое решение называется state machine.
👨🎓 .NET/ASP.NET Core разработчик Родион Мостовой разбирается с понятием state machine для понимания принципа работы асинхронности в C#.
👉 Читать
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥21👍3❤2
Forwarded from Библиотека программиста | программирование, кодинг, разработка
🏔 Эпикфейл: карьера катится к чертям
🤦♂️ У всех нас случались провалы в карьере, о которых не хочется распространяться. Неловкий момент на собеседовании, провал проекта из-за глупой ошибки, конфликт с начальством — такие ситуации хочется поскорее забыть. Однако часто именно они дают нам самые ценные уроки и закаляют как профессионалов.
📝 Поделитесь своей историей карьерного провала в нашем новом опросе и расскажите, к чему он привел в итоге. Быть может, эта ошибка позволила вам пересмотреть свой путь и выбрать более подходящую профессию? А может, вы сделали правильные выводы и сейчас добились успеха?
👉 Поделиться историей
🤦♂️ У всех нас случались провалы в карьере, о которых не хочется распространяться. Неловкий момент на собеседовании, провал проекта из-за глупой ошибки, конфликт с начальством — такие ситуации хочется поскорее забыть. Однако часто именно они дают нам самые ценные уроки и закаляют как профессионалов.
📝 Поделитесь своей историей карьерного провала в нашем новом опросе и расскажите, к чему он привел в итоге. Быть может, эта ошибка позволила вам пересмотреть свой путь и выбрать более подходящую профессию? А может, вы сделали правильные выводы и сейчас добились успеха?
👉 Поделиться историей
❤1👍1
TerminalLogger предоставляет более подробный вывод, по сравнению со стандартным консольным логгером, однако он не включен по умолчанию.
📌 Для активации используйте опцию
--tl
(например, dotnet build --tl
) или включите его по умолчанию с помощью переменной окружения MSBUILDTERMINALLOGGER
, которая может быть установлена в значения true
, false
или auto
.📌 Новый TerminalLogger можно включить для текущего пользователя:
[Environment]::SetEnvironmentVariable("MSBUILDTERMINALLOGGER", "auto", "User")
В статье также приводится сравнение вывода между стандартным консольным логгером и TerminalLogger, подчеркивая такие преимущества, как группировка предупреждений и ошибок по целевой платформе, улучшенная читаемость благодаря цветам, гиперссылки для основного вывода сборки, отображение времени выполнения для каждой цели и более понятный статус окончательной сборки.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍20❤2
Можно ли ускорить рефлексию в .NET? Да, с помощью легковесной генерации кода на основе деревьев выражений.
Выше — пример оптимизации доступа к членам путем кэширования сгенерированных выражений доступа к полям или свойствам.
Это все еще в 100 раз медленнее, чем прямой доступ. Но в 10 раз быстрее, чем обычная рефлексия!
#dotnet #csharp #benchmarks #tip by Сергей Тепляков
Выше — пример оптимизации доступа к членам путем кэширования сгенерированных выражений доступа к полям или свойствам.
Это все еще в 100 раз медленнее, чем прямой доступ. Но в 10 раз быстрее, чем обычная рефлексия!
#dotnet #csharp #benchmarks #tip by Сергей Тепляков
⚡12👍6❤1💯1
🤦♂️ Есть такое слово «надо», которое отравляет многим жизнь. Надо получить вышку, надо жениться до стольких-то лет и родить детей до стольких-то, надо зарабатывать столько-то и еще много-много «надо».
❤️ Как с этим жить? Попробуйте вместо «надо» поставить «полезно». И если бесполезно — то не надо!
💬 А какое слово отравляет вашу жизнь? Поделитесь в комментариях 👇
❤️ Как с этим жить? Попробуйте вместо «надо» поставить «полезно». И если бесполезно — то не надо!
💬 А какое слово отравляет вашу жизнь? Поделитесь в комментариях 👇
👍12🥱7❤4
👨💻 При разработке .NET-приложений почти всегда возникает необходимость включить в сборку сторонние ресурсы. Среди них могут быть данные любого типа: от исполняемых файлов до изображений и CSS-файлов.
Также часто возникает необходимость использовать разные ресурсы для разных целевых платформ. В статье автор разбирает два примера настройки MSBuild с разными ресурсами для каждой из выбранных операционных систем (Windows и Linux).
В комментариях один из читателей указал, что большинство свойств можно писать не элементами, а атрибутами в одной строке, например:
Также часто возникает необходимость использовать разные ресурсы для разных целевых платформ. В статье автор разбирает два примера настройки MSBuild с разными ресурсами для каждой из выбранных операционных систем (Windows и Linux).
В комментариях один из читателей указал, что большинство свойств можно писать не элементами, а атрибутами в одной строке, например:
<EmbeddedResource Include="Images\linux.png" LogicalName="Images.Banner.png"/>
<Content Include="run" CopyToOutputDirectory="PreserveNewest"/>
👍13❤1
Forwarded from Библиотека программиста | программирование, кодинг, разработка
🗄️ Базовые запросы SQL: получение записей из БД
В этой статье приведены примеры простых запросов SQL, которые начинающие программисты могут использовать для получения записей из своих баз данных.
🔗 Читать статью
🔗 Зеркало
В этой статье приведены примеры простых запросов SQL, которые начинающие программисты могут использовать для получения записей из своих баз данных.
🔗 Читать статью
🔗 Зеркало
❤17🥱9
Сравниваете ли вы свои карьерные достижения (повышение грейда) с успехами других людей?
Anonymous Poll
32%
Да — от установки «быть не хуже других» не убежишь
20%
Стараюсь не делать этого, т. к. пользы нет, а вреда достаточно
35%
Сравнений не избежать, но я стараюсь вдохновляться на действия и мотивировать себя
13%
Да, но в итоге чувствую только недовольство по отношению к другим и себе
16%
Сравниваю, но никому не завидую
10%
Сравниваю и наслаждаюсь своей крутостью
4%
Свой вариант (напишу в комментариях)
🥱10👏3👍1🌚1
Рассматривать возможность переноса кода собственных проектов на современные типобезопасные языки в Microsoft начали не позднее 2019 г. В декабре 2019 г. CNews писал о том, что специалисты «Редмондского гиганта» разрабатывают новый язык программирования под кодовым названием Verona, который базируется на Rust.
Непосредственно с Rust в Microsoft начали экспериментировать летом 2019 г., а в ноябре того же года Adam Burch, программист из команды разработчиков Hyper-V, написал в корпоративном блоге о том, что ему поручили переписать на Rust некий низкоуровневый компонент Windows. Он также отметил, что опыт применения Rust для него оказался в целом положительным.
👉 Подробнее о новости
Please open Telegram to view this post
VIEW IN TELEGRAM
CNews.ru
Microsoft отказывается от C#. Фундаментальный компонент Office 365 будет переписан на языке Rust, обожаемом хакерами - CNews
Microsoft продолжает переписывать отдельные элементы собственной экосистемы программных продуктов на модном типобезопасном...
🤔18👍4🥰4❤2👏2
😱 Команда Microsoft представила утилиту sudo для Windows
🔐 Кто работал в *nix, знают, что sudo позволяет выполнять привилегированные команды обычным пользователям без необходимости ввода пароля суперпользователя.
⚒️ Sudo для Windows — это новый способ запуска команд с повышенными привилегиями прямо в терминале пользователя. Казалось бы, отличная новость, — операционная система развивается. Но в случае с Microsoft всегда в сообществе происходит переполох.
🤯 Мейнтейнеры оригинального проекта sudo вместе с сообществом решили перенести Word в OpenBSD, при этом повторить путь Microsoft:
🔸Не заботиться о совместимом поведении
🔸Не заботиться о товарных знаках или де-факто товарных знаках
🔸Не спрашивать первоначальные продуктовые команды, все ли в порядке
🔐 Кто работал в *nix, знают, что sudo позволяет выполнять привилегированные команды обычным пользователям без необходимости ввода пароля суперпользователя.
⚒️ Sudo для Windows — это новый способ запуска команд с повышенными привилегиями прямо в терминале пользователя. Казалось бы, отличная новость, — операционная система развивается. Но в случае с Microsoft всегда в сообществе происходит переполох.
🤯 Мейнтейнеры оригинального проекта sudo вместе с сообществом решили перенести Word в OpenBSD, при этом повторить путь Microsoft:
🔸Не заботиться о совместимом поведении
🔸Не заботиться о товарных знаках или де-факто товарных знаках
🔸Не спрашивать первоначальные продуктовые команды, все ли в порядке
👍12🤔4😁2