как повысить производительность игрового сервера с помощью процессора mutil-core - PullRequest
2 голосов
/ 17 декабря 2010

как повысить производительность игрового сервера с помощью процессора mutil-core Моя точка зрения:

  1. один занятый процесс делает одно ядро ​​занятым, если только один занятый процесс, очень плохо.
  2. многопроцессный процесс и прослушивание подключений с одновременным доступом к другому порту
  3. мультипроцесс не может напрямую использовать данные памяти. им нужно общаться.
  4. они могут общаться в сокете, сокете fp и redis
  5. разделяет игровой сервер на разные функции, каждая функция - отдельный процесс, некоторые функции могут быть параллельными процессами.

если моя точка зрения верна, мой вопрос:

что является лучшим способом обмена данными между процессами и синхронизации данных, а лучший - быстрым и простым.

Я использую nodejs, но я думаю, что то же самое с c для этой темы.

Edit:

Разделение или разделение по функциям, что лучше

Ответы [ 2 ]

2 голосов
/ 17 декабря 2010

В Интернете много дискуссий об этом, поэтому я просто присоединяюсь к ссылкам, а не повторяю то, что они говорят:

Эти ссылки показывают лучшие практики для создания безопасной и хорошо спроектированной параллелирешение.

Я бы посоветовал создать пул потоков для обработки соединений.Одна нить на соединение.Это обычный «шаблон» для серверов.

0 голосов
/ 17 декабря 2010

Одним из методов для node.js является использование ØMQ , которое позволяет обмениваться данными между потоками, процессами и серверами с помощью одного и того же простого API-интерфейса, совместимого с BSD-сокетами.

Вот узелПривязка .js попробовать:

https://github.com/JustinTulloss/zeromq.node

...