В .NET Core сервисе под высокой нагрузкой время отклика начало расти. Профилирование показывает частые паузы GC и большое количество объектов в Large Object Heap (LOH). Как вы будете разбираться с этой проблемой и что можно сделать для оптимизации?
Нужно проанализировать профилировщиком (dotTrace, PerfView, ETW), какие именно объекты попадают в LOH. Оптимизировать работу с большими массивами и строками: использовать пулы (ArrayPool<T>), Span<T>, Memory<T>, разбивать большие структуры на меньшие. Проверить аллокации, убрать избыточные, а GC — настроить (Server/Background GC).
Библиотека собеса по С#
Библиотека собеса по С#
🔥2
В высоконагруженном .NET Core сервисе вы замечаете рост задержек при обработке запросов. Профилирование показывает большое количество асинхронных задач в состоянии WaitingForActivation. Что это может означать и как решать проблему?
Это часто указывает на блокирующий код внутри async-методов (например, вызовы .Result или .Wait()), либо на долгие операции без await. Нужно убрать синхронные блокировки, использовать полноценный async/await, добавить таймауты, проверить сторонние библиотеки на наличие блокирующих вызовов и при необходимости вынести тяжёлые операции в отдельные потоки/процессы.
🔹 Курс «Программирование на языке Python»
🔹 Получить консультацию менеджера
🔹 Сайт Академии 🔹 Сайт Proglib
Библиотека собеса по С#
🔹 Курс «Программирование на языке Python»
🔹 Получить консультацию менеджера
🔹 Сайт Академии 🔹 Сайт Proglib
Библиотека собеса по С#
В Unity-проекте вы замечаете, что FPS резко проседает при активации новых объектов на сцене. Как вы будете искать и устранять проблему?
Сначала проверю профайлером (Unity Profiler, Deep Profile), чтобы понять, тратится ли время на Instantiate, GC или загрузку ассетов. Для оптимизации — применю Object Pooling вместо частого создания/уничтожения объектов, использую Addressables для асинхронной подгрузки, а также разделю тяжёлые операции на несколько кадров (coroutines/Jobs).
Библиотека собеса по С#
Библиотека собеса по С#
Почему тебя валят на архитектуре?
Выучить синтаксис C# и LINQ — это программа минимум. Но на позициях Middle+ собеседующие копают глубже: паттерны, SOLID, чистота кода и алгоритмическая база. Без этого оффер не получить.
Закрываем пробелы оптом: 1 + 2.
Выбираешь три курса, оплачиваешь только тот, что выше по стоимости. Остальные — за счет заведения.
Что подтянуть шарписту:
— Архитектуры и шаблоны проектирования (чтобы отвечать уверенно);
— Алгоритмы и структуры данных.
Собрать набор для грейдапа
Актуально до 31 декабря.
Нужен совет по треку? Пиши: @manager_proglib
Выучить синтаксис C# и LINQ — это программа минимум. Но на позициях Middle+ собеседующие копают глубже: паттерны, SOLID, чистота кода и алгоритмическая база. Без этого оффер не получить.
Закрываем пробелы оптом: 1 + 2.
Выбираешь три курса, оплачиваешь только тот, что выше по стоимости. Остальные — за счет заведения.
Что подтянуть шарписту:
— Архитектуры и шаблоны проектирования (чтобы отвечать уверенно);
— Алгоритмы и структуры данных.
Собрать набор для грейдапа
Актуально до 31 декабря.
Нужен совет по треку? Пиши: @manager_proglib
🤩1
В вашей команде разработчиков часто случаются конфликты при merge в main. Как вы будете диагностировать и выстраивать процесс так, чтобы минимизировать количество конфликтов?
Анализировать, где чаще всего возникают конфликты (монолитные файлы, частые изменения), внедрить короткоживущие feature-ветки и регулярные rebase на main, настроить code ownership и pull request review. При необходимости — разбить большие модули на более мелкие, а также автоматизировать форматирование кода, чтобы уменьшить “шум” в diff.
Библиотека собеса по С#
Библиотека собеса по С#
👍2
В .NET Core приложении вы видите рост задержек при обработке запросов. Профилирование показывает большое количество задач в состоянии WaitingForActivation. Что это может означать и как подойти к решению?
Это указывает на то, что async-операции не завершаются — скорее всего, используется блокирующий код внутри async-методов (например, .Result или .Wait()), либо есть deadlock в цепочке await. Решение — убрать блокировки, использовать полноценный async/await, при необходимости добавить таймауты и профилировать зависимые I/O вызовы.
Библиотека собеса по С#
Библиотека собеса по С#
Является ли код C# управляемым или неуправляемым?
Поскольку среда выполнения Common Language Runtime может преобразовывать код C# в промежуточный язык, код на C# считается управляемым кодом.
Библиотека собеса по С#
Библиотека собеса по С#
В высоконагруженном .NET-сервисе вы замечаете частые паузы из-за сборки мусора (GC). Как вы будете диагностировать и оптимизировать проблему?
Сначала профилировать память (dotMemory, PerfView, ETW), чтобы найти “тяжёлые” аллокации. Проверить Generation 2 объекты и Large Object Heap. Для оптимизации — уменьшить количество аллокаций с помощью Span<T>, Memory<T>, пулов объектов (ArrayPool<T>), использовать ValueTask, а также при необходимости настроить режим GC (Server vs Workstation, Background GC).
Библиотека собеса по С#
Библиотека собеса по С#
Почему struct в C# может быть быстрее, чем class?
Потому что struct хранится на стеке (или inline в объекте), не требует аллокации в куче и не создаёт нагрузку на GC.
Библиотека собеса по С#
Библиотека собеса по С#
👍5
Как проектировать высокопроизводительные API без копий с Span<T>/ReadOnlySpan<T>?
Принимайте вход как ReadOnlySpan<T>/Span<T>, возвращайте данные через ReadOnlyMemory<T>/Memory<T> для async-границ, избегайте удержания Span вне стека, используйте ref readonly/scoped где уместно, не создавать лишних строк/массивов, использовать пулы буферов и инкрементальный парсинг/запись.
Библиотека собеса по С#
Библиотека собеса по С#
😁2
Можно ли реализовать несколько блоков catch?
Невозможно реализовать несколько блоков catch. После выполнения правильного кода catch управление переходит к блоку final. После этого реализуется код, следующий за final блоком.
Библиотека собеса по С#
Библиотека собеса по С#
😁9🤔7👍3🌚2
Что подразумевается под свойствами в C#?
В C# существуют специальные методы доступа, которые и именуются свойствами. Они обеспечивают простой доступ к полям класса для получения или установки их значения. Определение свойства содержит блоки get и set. В блоке get возвращается значение поля, а в блоке set устанавливается с помощью параметра value, которое представляет передаваемое значение.
Библиотека собеса по С#
Библиотека собеса по С#
🌚2
Опишите этапы компиляции кода на C#.
Процесс включает четыре основных шага: предварительная обработка, компиляция, сборка и связывание.
Библиотека собеса по С#
Библиотека собеса по С#
🌚5🤔1
WANTED: .NET-ИНКВИЗИТОР
Обвиняется в знании всех тонкостей
Приметы:
— в совершенстве владеет
— может объяснить разницу между
— имеет личный опыт проведения технических интервью;
— готов развивать личный бренд на большую аудиторию Proglib.
Суть сделки:
— участие в создании обучающего контента и разборов;
— медийная поддержка и охваты;
— достойный гонорар за твою экспертизу.
Сдаться добровольно
P.S. Твой лид — ходячая энциклопедия по .NET? Пора его сдать.
Обвиняется в знании всех тонкостей
CLR и умении завалить любого джуна вопросом про yield return. Мы ищем того, кто готов выйти на свет и научить других проходить собеседования без валидола.Приметы:
— в совершенстве владеет
C# (понимает архитектуру Java или Go);— может объяснить разницу между
struct и class даже в три часа ночи;— имеет личный опыт проведения технических интервью;
— готов развивать личный бренд на большую аудиторию Proglib.
Суть сделки:
— участие в создании обучающего контента и разборов;
— медийная поддержка и охваты;
— достойный гонорар за твою экспертизу.
Сдаться добровольно
P.S. Твой лид — ходячая энциклопедия по .NET? Пора его сдать.
😁3
Что такое Round Trip в ASP.NET?
В момент включения обработки на стороне сервера, тогда включаются четыре этапа:
1. Пользователь запрашивает веб-форму с веб-сервера.
2. Веб-сервер отвечает указанной веб-формой.
3. Пользователь вводит информацию и отправляет веб-форму на сервер.
4. Затем веб-сервер обрабатывает структуру формы и отправляет результаты обратно конкретному пользователю.
Теперь этап 3 известен как постбэк страницы, в то время как этапы 3 и 4 в совокупности известны как «Round Trip». Можно сказать, что обратный путь включает в себя выполнение полного обхода по сети к веб-браузеру и получение ответа. Веб-приложения используют HTTP для создания соответствия между веб-программой и сервером.
Библиотека собеса по С#
1. Пользователь запрашивает веб-форму с веб-сервера.
2. Веб-сервер отвечает указанной веб-формой.
3. Пользователь вводит информацию и отправляет веб-форму на сервер.
4. Затем веб-сервер обрабатывает структуру формы и отправляет результаты обратно конкретному пользователю.
Теперь этап 3 известен как постбэк страницы, в то время как этапы 3 и 4 в совокупности известны как «Round Trip». Можно сказать, что обратный путь включает в себя выполнение полного обхода по сети к веб-браузеру и получение ответа. Веб-приложения используют HTTP для создания соответствия между веб-программой и сервером.
Библиотека собеса по С#
В чем разница между public, static и void?
Публично объявленные переменные или методы доступны в любом месте приложения. Статически объявленные переменные или методы доступны глобально без создания экземпляра класса. Статический член по умолчанию не доступен глобально, это зависит от используемого типа измененного доступа. Компилятор сохраняет адрес метода в качестве точки входа и использует эту информацию, чтобы начать выполнение до создания каких-либо объектов. А Void — это модификатор типа, который указывает, что метод или переменная не возвращает никакого значения.
Библиотека собеса по С#
Библиотека собеса по С#
🥱6👏2
Почему для методов внутри интерфейса нельзя указать модификатор доступа?
Виртуальные методы в интерфейсе не имеют определения метода. Методы здесь написаны для переопределения в производном классе и, следовательно, они общедоступны.
Библиотека собеса по С#
Библиотека собеса по С#
😁2👍1
Назовите различные способы передачи параметров методу в C#.
Существует три способа передачи параметров:
📌 Параметры значений
📌 Ссылочные параметры
📌 Выходные параметры
Библиотека собеса по С#
Существует три способа передачи параметров:
📌 Параметры значений
📌 Ссылочные параметры
📌 Выходные параметры
Библиотека собеса по С#
👍1
Как бы вы подошли к отладке сложной проблемы в проекте Unity?
Пример ответа: «При отладке сложной проблемы в Unity я начинаю с изоляции проблемы с помощью Unity Profiler и Debug.Log для сбора подробной информации. Затем я систематически тестирую потенциальные решения, такие как оптимизация скриптов, лучшее управление ассетами или корректировка настроек, чтобы эффективно определить и устранить первопричину.»
Библиотека собеса по С#
Библиотека собеса по С#
😁6👍1
Друзья, с наступающим Новым годом! 🎄 ✨
Пусть в 2026 собеседования проходят спокойнее и предсказуемее: вопросы — по делу, задачи — решаемые, а фидбек — быстрый и честный. Пусть будет больше приятных разговоров, больше «да» по итогам встреч и больше поводов гордиться собой.
Тепла, здоровья и карьерных побед — с праздником! 🚀
Пусть в 2026 собеседования проходят спокойнее и предсказуемее: вопросы — по делу, задачи — решаемые, а фидбек — быстрый и честный. Пусть будет больше приятных разговоров, больше «да» по итогам встреч и больше поводов гордиться собой.
Тепла, здоровья и карьерных побед — с праздником! 🚀
Please open Telegram to view this post
VIEW IN TELEGRAM
🎉8🥰2
Объясните, что такое Prefabs в Unity 3D?
Prefab в Unity 3D представляет собой готовый шаблон объекта, который объединяет в себе как элементы, так и скрипты. В процессе разработки вы можете перетаскивать префабы из окна проекта в окно сцены, добавляя их в иерархию игровых объектов.
Если потребуется, вы можете редактировать объект после его добавления. Во время выполнения игры скрипт может создавать новые экземпляры объекта в определённом месте или с заданными свойствами трансформации.
Библиотека собеса по С#
Если потребуется, вы можете редактировать объект после его добавления. Во время выполнения игры скрипт может создавать новые экземпляры объекта в определённом месте или с заданными свойствами трансформации.
Библиотека собеса по С#
👍3