TGViewer
Scala bin Scala bin @scalabin · 325 subscribers
Post #106 981
Недавно опубликованный доклад "Threads at Scale" вновь поднял извечный вопрос идеального количества потоков в приложении и как этот параметр влияет на производительность. При использовании высокоуровневых языков программирования легко забыть, что каждое переключение процессора между потоками исполнения - одна из самых "дорогих" операций для процессора.

Как докладчик, так и авторы исходной статьи сходятся во мнении, что нужно стремиться к ситуации, когда одному потоку приложения (связанному с потоком ОС) соответствует одно ядро процессора (без учёта мультитрединга). Однако, поскольку строить всё приложение вокруг количества потоков в ОС часто архитектурно проблематично, а в реальных приложениях часто присутствуют системные вызовы, блокирующие поток исполнения, оптимальной на текущий момент является абстракция над реальными потоками исполнения в виде системы эффектов. Например, cats-effect предлагает оперировать логическими потоками в виде Fiber, не привязанными к потокам ОС, а для блокирующих операций выделять отдельный Executor, работа с которым тоже осуществляется через абстракцию.

Отдельно рекомендую прочитать исходную научную работу - авторы очень подробно рассматривают факторы, влияющие на производительность при переключении потоков исполнения, и текущие ограничения аппаратного обеспечения.
Sphere.it Threads at Scale - Sphere.it Multi-threaded concurrency has been a strength of the JVM since Java 1.2, and its implementation in that runtime has been a major driver behind the JVM’s pervasive adoption in modern, highly distributed, high-RPS backend services. Just about everyone who…
  • 🔥 4
More from @scalabin
  1. Jul 1, 2024photo post
  2. Jul 1, 2024Чуть больше года спустя впервые с начала эпидемии Scala Matsuri наконец прошла в штатном р…
  3. Apr 17, 2023Впервые с 2019 года Scala Matsuri провели оффлайн и наконец довелось посетить мероприятие…
  4. Apr 5, 2023Наконец-то вышла статья за моим авторством о переходе с Java на Scala. Как мне кажется, по…
  5. Feb 10, 2023Помню, как когда только-только начинал работать с языком Java, был жутко обрадован наличию…
  6. Dec 16, 2022document post
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 →