TGViewer
devdigest // dot net devdigest // dot net @dncuug · 3.9K subscribers
Post #4039 1.02K
⚡️ Environment.ProcessorCount с .NET 6 считает лимит процесса, а не ядра хоста

Andrew Lock показал, что начиная с .NET 6 Environment.ProcessorCount отдаёт не число процессоров хоста, а количество логических ядер, доступных именно процессу — в контейнере с CPU-лимитом это совсем другое число.

Обхода в BCL нет, поэтому для каждой платформы — свой P/Invoke. В Windows это GetActiveProcessorCount с флагом «все группы процессоров» (0xFFFF), в macOS — sysctlbyname("hw.logicalcpu"), а в Linux приходится парсить /sys/devices/system/cpu/online, где диапазоны ядер вперемешку с одиночными номерами вроде «0-3,4,8-11». Lock приводит парсер для обоих форматов и советует завернуть результат в синглтон: значение не меняется за время жизни процесса, дёргать sysctl или P/Invoke на каждую проверку незачем.

Сам автор честно пишет, что в проде это ещё не проверял. Если вам действительно нужно число ядер хоста, а не лимит контейнера — например, для пула потоков вне cgroup-ограничений — сначала прогоните код на своей платформе, а не копируйте вслепую.

👉🏻 Канал | 💬 Чат | 📕 Каталог
Andrew Lock | .NET Escapades Finding the total number of processors on a machine with .NET In this post I show how to find the total number of logical CPUs on a host (not just those available to a process); something that isn't exposed in modern .NET
  • ❤ 6
More from @dncuug
  1. Sep 25, 2026⚡️ Microsoft показывает, как собрать AI-агента на C# с нуля — в живой серии из четырёх сес…
  2. Sep 23, 2026⚡️ Rider и ReSharper 2026.2.2: виджет для настройки AI-агентов и точечные подсказки хуков…
  3. Sep 21, 2026⚡️ F# обходит C# почти по всем параметрам, кроме тулинга — колонка Mark Seemann Марк Симан…
  4. Sep 18, 2026⚡️ Uno Platform разделили MCP-сервер на два — по времени жизни данных, а не по фичам Uno P…
  5. Sep 16, 2026⚡️ Rider 2026.3 EAP: радужные скобки и не только JetBrains открыла Early Access Program дл…
  6. Sep 15, 2026⚡️ Сентябрьский servicing .NET: закрыто 8 CVE в 10.0, 9.0 и 8.0 Microsoft выпустила сентяб…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →