Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/442.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何利用多核cpu提高游戏服务器性能_Javascript_C_Concurrency_Network Programming_Node.js - Fatal编程技术网

Javascript 如何利用多核cpu提高游戏服务器性能

Javascript 如何利用多核cpu提高游戏服务器性能,javascript,c,concurrency,network-programming,node.js,Javascript,C,Concurrency,Network Programming,Node.js,如何利用多核cpu提高游戏服务器性能 我的观点是: 一个繁忙的进程会使一个核心繁忙,如果只有一个繁忙的进程,那将非常糟糕 多进程进程和侦听不同端口导入的并发连接 多进程不能直接共享内存数据。他们需要沟通 它们可以在socket、fp socket和redis中通信 将游戏服务器分成不同的功能,每个功能都是一个独立的进程,有些功能可以并行处理 如果我的观点是正确的,我的问题是: 进程间通信和保持数据同步的最佳方式是什么?最佳方式意味着快速和简单 我使用的是nodejs,但我认为对于这个主题,它与c

如何利用多核cpu提高游戏服务器性能 我的观点是:

  • 一个繁忙的进程会使一个核心繁忙,如果只有一个繁忙的进程,那将非常糟糕
  • 多进程进程侦听不同端口导入的并发连接
  • 多进程不能直接共享内存数据。他们需要沟通
  • 它们可以在socket、fp socket和redis中通信
  • 将游戏服务器分成不同的功能,每个功能都是一个独立的进程,有些功能可以并行处理
  • 如果我的观点是正确的,我的问题是:

    进程间通信和保持数据同步的最佳方式是什么?最佳方式意味着快速和简单

    我使用的是nodejs,但我认为对于这个主题,它与c是一样的

    编辑:


    分片或按功能分开,哪一个更好?互联网上有很多关于这方面的讨论,所以我只是加入链接,而不是重复他们所说的:

    这些链接展示了创建安全且设计良好的并行解决方案的最佳实践


    我建议创建一个线程池来处理连接。每个连接一个线程。这是服务器的常见“模式”。

    node.js的一种方法是使用,它允许您使用相同的简单BSD套接字兼容API在线程、进程和服务器之间进行通信

    下面是要尝试的node.js绑定:


    #1还不错,它允许您在一台机器上运行多个游戏服务器。多线程意味着您现在在运行多个实例方面受到很大限制。