Являются ли goroutines на одном ядре быстрее? - PullRequest
0 голосов
/ 04 марта 2020

Если сервер, на котором я запускаю код go, имеет только одно ядро, могу ли я ожидать повышения производительности, запустив на нем программы? Да, почему это происходит быстрее, когда не происходит параллелизма?

1 Ответ

7 голосов
/ 04 марта 2020

Это зависит от кода и от того, что вы блокируете. Если вы блокируете ввод / вывод (но все еще выполняете другие операции, не связанные с вводом / выводом), то несколько процедур на одном ядре могут быть значительно быстрее. Если вы блокируете центральный процессор, то многократные процедуры, вероятно, несколько медленнее из-за дополнительных накладных расходов. Если вы блокируете память, то несколько процедур могут быть значительно медленнее из-за дополнительных конфликтов и недействительности кэша. Там нет общего ответа; это зависит от того, какую проблему вы решаете с помощью параллелизма и как вы ее реализуете.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...