Библиотека собеса по C# | вопросы с собеседований
5.54K subscribers
236 photos
4 videos
1 file
354 links
Вопросы с собеседований по C# и ответы на них.

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

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

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

Наши каналы: https://t.iss.one/proglibrary/9197
Download Telegram
Почему struct в C# может быть быстрее, чем class?

Потому что struct хранится на стеке (или inline в объекте), не требует аллокации в куче и не создаёт нагрузку на GC.

Библиотека собеса по С#
👍2
В высоконагруженном .NET-сервисе вы замечаете частые паузы из-за сборки мусора (GC). Как вы будете диагностировать и оптимизировать проблему?

Сначала профилировать память (dotMemory, PerfView, ETW), чтобы найти “тяжёлые” аллокации. Проверить Generation 2 объекты и Large Object Heap. Для оптимизации — уменьшить количество аллокаций с помощью Span<T>, Memory<T>, пулов объектов (ArrayPool<T>), использовать ValueTask, а также при необходимости настроить режим GC (Server vs Workstation, Background GC).

Библиотека собеса по С#
👍121
В продакшене .NET-сервис со временем начинает замедляться, при этом CPU загружен не полностью, но видно рост задержек при обработке запросов. Как вы будете искать и устранять проблему?

Провести профилирование (PerfView, dotTrace) для анализа блокировок и асинхронных операций, проверить работу async/await на предмет deadlock’ов, посмотреть contention в lock/Monitor. Оптимизировать использование асинхронных I/O, ограничить параллелизм (например, SemaphoreSlim), снизить аллокации и при необходимости перепроектировать горячие участки кода.

Библиотека собеса по С#
В .NET Core приложении вы видите рост задержек при обработке запросов. Профилирование показывает большое количество задач в состоянии WaitingForActivation. Что это может означать и как подойти к решению?

Это указывает на то, что async-операции не завершаются — скорее всего, используется блокирующий код внутри async-методов (например, .Result или .Wait()), либо есть deadlock в цепочке await. Решение — убрать блокировки, использовать полноценный async/await, при необходимости добавить таймауты и профилировать зависимые I/O вызовы.

Библиотека собеса по С#
В .NET Core приложении вы видите рост задержек при обработке запросов. Профилирование показывает большое количество задач в состоянии WaitingForActivation. Что это может означать и как подойти к решению?

Это указывает на то, что async-операции не завершаются — скорее всего, используется блокирующий код внутри async-методов (например, .Result или .Wait()), либо есть deadlock в цепочке await. Решение — убрать блокировки, использовать полноценный async/await, при необходимости добавить таймауты и профилировать зависимые I/O вызовы.

Библиотека собеса по С#
1
🏃‍♀️ Новый поток курса — собери своих AI-агентов

7 октября стартует второй поток курса «AI-агенты для DS-специалистов».
За 5 недель вы научитесь собирать агентов, которые уже сейчас будут помогать бизнесу.

В кружке выше Максим Шаланкин, наш преподаватель, рассказывает подробнее — включай, чтобы не пропустить.

👉 Записаться на курс
Please open Telegram to view this post
VIEW IN TELEGRAM
В .NET Core сервисе под высокой нагрузкой вы замечаете рост задержек и частые блокировки потоков при работе с БД. Как будете искать и устранять проблему?

Проверить, не используются ли синхронные вызовы (.Result, .Wait()), профилировать async-цепочки. Убедиться, что пул подключений к БД настроен корректно, и что долгие операции не блокируют ThreadPool. Решение — переписать на полноценный async/await, оптимизировать запросы, при необходимости ограничить параллелизм через SemaphoreSlim или использовать кэширование.

Библиотека собеса по С#
This media is not supported in your browser
VIEW IN TELEGRAM
Так, владелец макбука. Хватит позировать в кофейне.

Настоящее портфолио — это не стикеры на крышке, а проект с чистым кодом, README и рабочей демкой.

Не знаешь, как такой собрать? Научим. Наш курс «ML для старта в Data Science» — это пошаговый гайд к проекту, за который не стыдно.

ОСТАЛАСЬ НЕДЕЛЯ, чтобы забрать его по старой цене в 44.000 ₽. С 1 сентября — всё.

🎁 И да, при покупке курса ML до 1 сентябрякурс по Python получаешь бесплатно.

👉 Апгрейд от «вайба» до «оффера» тут
В высоконагруженном .NET Core сервисе вы замечаете рост задержек при обработке запросов. Профилирование показывает большое количество асинхронных задач в состоянии WaitingForActivation. Что это может означать и как решать проблему?

Это часто указывает на блокирующий код внутри async-методов (например, вызовы .Result или .Wait()), либо на долгие операции без await. Нужно убрать синхронные блокировки, использовать полноценный async/await, добавить таймауты, проверить сторонние библиотеки на наличие блокирующих вызовов и при необходимости вынести тяжёлые операции в отдельные потоки/процессы.

Библиотека собеса по С#
В .NET Core сервисе под высокой нагрузкой время отклика начало расти. Профилирование показывает частые паузы GC и большое количество объектов в Large Object Heap (LOH). Как вы будете разбираться с этой проблемой и что можно сделать для оптимизации?

Нужно проанализировать профилировщиком (dotTrace, PerfView, ETW), какие именно объекты попадают в LOH. Оптимизировать работу с большими массивами и строками: использовать пулы (ArrayPool<T>), Span<T>, Memory<T>, разбивать большие структуры на меньшие. Проверить аллокации, убрать избыточные, а GC — настроить (Server/Background GC).

Библиотека собеса по С#
📢 Какой сетап идеально подойдёт для разработки AI-агента?

Голосуйте за свой вариант и пишите в комментариях, в каком режиме вы реально кодите.

❤️ — 1
👍 — 2
⚡️ — 3
👏 — 4
🔥 — 5
🎉 — 6
😁 — 7
😍 — 8
🤩 — 9

Какой бы сетап ни был, без AI-агентов в 2025 всё равно далеко не уедешь.

👉 Научим, как строить агентов, которые кодят с тобой
🎉1