Как стать автором
Обновить
2
0
Roman Golovanov @rgolovanov

Software Engineer

Отправить сообщение

ArrayPool<T>: подводные камни

Время на прочтение12 мин
Количество просмотров17K


Автоматическая сборка мусора упрощает разработку программ, избавляя от необходимости отслеживать жизненный цикл объектов и удалять их вручную. Однако, чтобы сборщик мусора был полезным инструментом, а не главным врагом на пути к высокой производительности — иногда имеет смысл помогать ему, оптимизируя частые аллокации и аллокации больших объектов.


Для уменьшения аллокаций в современном .NET предусмотрены Span/Memory<T>, stackalloc с поддержкой Span, структуры и другие средства. Но если без объекта в куче не обойтись, например, если объект слишком большой для стека, или используется в асинхронном коде — этот объект можно переиспользовать. И для самых крупных объектов — массивов, в .NET встроены несколько реализаций ArrayPool<T>.


В этой статье я расскажу о внутреннем устройстве реализаций ArrayPool<T> в .NET, о подводных камнях, которые могут сделать пулинг неэффективным, о concurrent-структурах данных, а также о пулинге объектов, отличных от массивов.

Читать дальше →
Всего голосов 58: ↑58 и ↓0+58
Комментарии3

Однажды у нас будет полностью настраиваемый select

Время на прочтение4 мин
Количество просмотров13K

Сегодня я хочу рассмотреть предложенную функцию HTML, которая может в итоге заменить множество пользовательских компонентов ввода на основе <div>: <selectmenu>.

Читать далее
Всего голосов 15: ↑15 и ↓0+15
Комментарии16

Нерезидент на удалёнке

Время на прочтение7 мин
Количество просмотров9.2K

В последние годы многие компании заключили с работниками соглашения о дистанционной работе. В результате значительное количество сотрудников выехало за пределы России, утратив статус налоговых резидентов. В таких ситуациях компании как налоговые агенты должны понимать порядок удержания НДФЛ в связи с изменившимся налоговым статусом сотрудника.

Согласно ст.312.1 ТК РФ, «дистанционной (удаленной) работой (далее - дистанционная работа, выполнение трудовой функции дистанционно) является выполнение определенной трудовым договором трудовой функции вне места нахождения работодателя, его филиала, представительства, иного обособленного структурного подразделения (включая расположенные в другой местности), вне стационарного рабочего места, территории или объекта, прямо или косвенно находящихся под контролем работодателя, при условии использования для выполнения данной трудовой функции и для осуществления взаимодействия между работодателем и работником по вопросам, связанным с ее выполнением, информационно-телекоммуникационных сетей, в том числе сети "Интернет", и сетей связи общего пользования.»

Статья 27 Конституции РФ гарантируем каждому свободу передвижения. И будет излишним говорить о праве работодателя ограничивать свободу передвижения работника, коль скоро трудовые отношения осуществляются в рамках дистанционной работы. Ст.81 ТК РФ также не предусматривает возможности уволить работника по инициативе работодателя за нахождение за пределами РФ или изменение налогового резидентства. Также закон не содержит общих правил, обязывающих граждан РФ сообщать работодателю о выездах за границу или изменение статуса налогового резидента.

Читать далее
Всего голосов 8: ↑6 и ↓2+7
Комментарии0

Мой друг Netmiko. Часть 3: один скрипт для разных устройств Huawei

Время на прочтение5 мин
Количество просмотров4.2K

Мы уже разобрали в прошлых частях как накатить на сетевые устройства Huawei список команд из внешнего файла. И это работает, если у нас сеть состоит из одинаковых устройств. Конечно, в реальной практике такое встречается редко. В этой работе мы рассмотрим как использовать разные конфигурационные файлы для разных устройств Huawei, при этом не выходя за рамки одного скрипта. То есть у нас будет все тот же скрипт на основе Netmiko, но в зависимости от версии устройства, конфиг будет накатываться разный: один конфиг для коммутатора CloudEngine Huawei, другой конфиг для роутера AR3200 Huawei.

Как обычно, полный скрипт приведу в конце статьи, видеодемонстрация доступа по ссылке на Форуме Huawei ICT Club.

Читать далее
Всего голосов 6: ↑6 и ↓0+6
Комментарии13

Информация

В рейтинге
Не участвует
Откуда
Москва, Москва и Московская обл., Россия
Дата рождения
Зарегистрирован
Активность

Специализация

Backend Developer
Senior
C#
.NET
Windows Azure
Kubernetes
SQL
High-loaded systems
Git