他也玩传奇 首页 传奇学院 引擎功能 996引擎 查看内容

传奇996引擎版本多线程负载功能说明

2023-11-9 20:56| 发布者: 积木GM论坛| 查看: 1485| 评论: 0

摘要: 多线程负载功能使用说明;注意事项:使用多线程切记不要操作全局变量的多次循环触发,比如while循环多次G变量或执行多次goto等!适用场景:1. 服务器配置3000元以上的(在低配服务器上开启,会适得其反);2. 同地图负载 ...

多线程负载功能使用说明;
注意事项:使用多线程切记不要操作全局变量的多次循环触发,比如while循环多次G变量或执行多次goto等!

适用场景:
1. 服务器配置3000元以上的(在低配服务器上开启,会适得其反);
2. 同地图负载过大,需要分流的,比如沙巴克、皇宫、活动地图,不影响其他地图玩家;
3. 人数超过500,明显存在压力的;
4. 对于目前承载有需求的,比如变态服;
对于3000服务器,建议10条以内,一万服务器可以开启30+,注意:多线程不是越多越好,线程之间存在资源竞争,尽量线程复用.

开启方式:
路径:Mir200\Envir\MapInfo.txt地图配置 ;
例如1:[3 盟重省]改成[3 盟重省 5]那么盟重省地图会在5号线程里面运行,
不配置的地图默认都在0号线程里运行。同时也可以把多个地图指定在一个线程里运行
例如2:[0 比奇 5]这样 [比奇] 和 [盟重] 都在一个线程里运行。

注意事项:
* 线程数一定要控制在合理范围,避免资源浪费,从而导致效率下降
* 尽量线程复用,比如活动地图,时间不会集中在一起,可以把这几个地图,指定到一个线程。
* 避免线程之间的文件读写 `文本操作类`,比如玩家分布在不同的线程里,
  但是去同时读写一个文件,这会导致严重的性能下降,可以指定不同的文件名去读写,比如用UserId做文件名。
* 线程之间,变量尽量使用系统定义的:U,T,P,M..变量去操作,自定义变量存在切换时间,很少用到跨线程读写变量的,可以忽略。
* 版本的一些配置,尽量在引擎启动@Startup 的时候加载,不要反复加载,
  例拾取配置,不要捡东西的时候,反复加载,这些都是多余的操作,造成CPU资源的浪费。
* 系统提供的定时器,都在0号线程运行,如果有用定时器刷怪,建议改掉,换成(SetEnvirOnTimer),在对应的场景里,去做刷怪操作。
* 地图切换触发时要注意,比如调用MapMove,Map 时,不会立刻取到要切换的地图名,建议放在对应的地图触发里执行 @EnterMap

 

相关阅读

最新评论