В 4–10 раз быстрее внутрипроцессная публикация/подписка для Go ( github.com/kelindar )
> примерно в 4–10 раз быстрее каналов.
Мне было бы интересно узнать, почему/как и какие структурные различия делают это возможным.
Это может быть полезно для некоторых, если вам нужен очень легкий pub/sub внутри одного процесса.
Я создавал небольшую многопользовательскую игру в Go. Начал с разветвления каналов, но (без особой причины) захотел посмотреть, можно ли сделать лучше. Собрал эту маленькую шину событий для тестирования, и на моем i7-13700K она доставляет события за 10-40 нс, примерно в 4-10 раз быстрее, чем простой канальный цикл, в зависимости от конфигурации.
Source: news.ycombinator.com