ET 篇:ETBook 笔记 (5.4 Actor 模型)
发布时间
阅读量:
阅读量
Actor模型原理与实现
黑体字为作者(熊猫大佬)原创,红色为个人理解
Actor角色定义与功能解析
在探讨Actor模型之前,有必要先了解ET的架构。为了充分发挥多核处理器的性能,游戏服务器通常采用两种架构方式:单线程多进程架构与单进程多线程架构。从本质上看,这两种架构之间的差异并不显著,因为在游戏逻辑开发过程中,多数情况都需要使用单线程处理。即便是采用单进程多线程架构,也必须通过某种方式确保逻辑开发的单一性。ET框架选择的是单线程多进程的结构,而传统的Actor模型则普遍采用的是单进程多线程的方式,这一区别较为明显,并不能简单地判断哪一种更优,只能说两者各具特点。其优劣分析如下:
-
无论是哪种架构,在逻辑实现上都要求使用单线程处理方式。Erlang语言中的进程逻辑是基于单线程设计的,Skynet框架中Lua虚拟机同样遵循这一原则。在ET框架中,每一个进程可以被看作一个Erlang进程或一个Skynet Lua虚拟机。
-
单线程多进程架构的一个优势在于无需自行开发profiler工具即可进行性能分析和监控。例如,在查看内存占用或CPU利用率时可以直接使用top等系统命令完成这些操作;而Erlang和Skynet则需要额外开发相关工具来实现类似功能。
-
另一个优点是,在单线程多进程结构下,无论是单一物理设备还是多个
全部评论 (0)
还没有任何评论哟~
