Пространства имен Golang и Linux - все еще не смешаны?
Просто интересуюсь текущим положением вещей. Принимая во внимание этот пост в блоге - https://www.weave.works/blog/linux-namespaces-and-go-don-t-mix - но также некоторые изменения в среде выполнения 1.10 - https://golang.org/doc/go1.10#runtime. В частности, то, что "среда выполнения теперь рассматривает заблокированные потоки как непригодные для повторного использования или для создания новых потоков".
Также читайте где-нибудь о серьезном снижении производительности при использовании LockOSThread, но не можете найти этот пост сейчас.
Я рассматриваю возможность использования Go в инструменте, который захватывает сетевой трафик (с помощью gopacket), но он должен учитывать пространство имен. На самом деле, может быть много пространств имен. Итак, будет ли Go хорошо обрабатывать множество "заблокированных" тем? Или мне лучше использовать C/C++?
В последнем случае я согласен использовать libpcap напрямую, но я приветствую предложение библиотеки синтаксического анализа и создания пакетов C++, которое активно поддерживается, но в то же время достаточно зрелое, чтобы поддерживать большой набор протоколов.