北大侠客行MUD论坛

 找回密码
 注册
搜索
热搜: 新手 wiki 升级
楼主: jason

关于mud负载和性能的分析

[复制链接]
发表于 2013-4-1 13:26:32 | 显示全部楼层
其实 这个说的不是很对  mudos 不会经常遍历所有物件的。  主要是减少 heart beat, reset 这些object 就行了。

另外有些性能不太好的地方 可以做做优化 比如说 一些节省内存 消耗cpu的 等等都可以改改 workaround.
北大侠客行Mud(pkuxkx.net),最好的中文Mud游戏!
发表于 2013-4-1 22:11:33 | 显示全部楼层
回复 10# jason


不用分布式, 可以使用共享内存的多线程并行方法。在目前一台机器可以轻松达到16核的情况下,共享内存的多线程并行比分布式简单容易多了。

可以使用OpenMP将MudOS重新编译一遍, 初步估计加几条语句就可以解决问题。
北大侠客行Mud(pkuxkx.net),最好的中文Mud游戏!
发表于 2013-4-2 10:15:28 | 显示全部楼层
哪来那么简单 mudos主要的cpu都是在 stack machine的执行上 这个不可能靠分布式优化.
北大侠客行Mud(pkuxkx.net),最好的中文Mud游戏!
发表于 2013-4-2 10:37:29 | 显示全部楼层
定期也不好,有些物品刚刷出来就没了
yyahoo 发表于 2012-8-25 06:58 PM


风云就是15分钟全地图刷新一次,不是原房间的东西全部清除。
北大侠客行Mud(pkuxkx.net),最好的中文Mud游戏!
 楼主| 发表于 2013-4-2 11:35:46 | 显示全部楼层
回复  jason


不用分布式, 可以使用共享内存的多线程并行方法。在目前一台机器可以轻松达到16核的情况 ...
dahao 发表于 2013-4-1 10:11 PM


没那么容易。mudos是用单线程模式开发的,用openmp就得到处加锁,最后性能还不一定高了还是低了。
北大侠客行Mud(pkuxkx.net),最好的中文Mud游戏!
发表于 2013-4-2 13:19:41 | 显示全部楼层
没那么容易。mudos是用单线程模式开发的,用openmp就得到处加锁,最后性能还不一定高了还是低了。
jason 发表于 2013-4-2 03:35 AM


首先, 一个物品只会交给一个线程处理。
我想对于绝大部分的物品来说, 处理的先后并没有关系。 稍加规划,对这样的物品用多线程并行并不用加锁。 然后对剩下的物品交给主线程去处理就好了。
当然如果绝大部分的物品都必须考虑先后, 就当我没说。

有些事情也许多考虑一步,也许并没有那么复杂也说不定。
北大侠客行Mud(pkuxkx.net),最好的中文Mud游戏!
 楼主| 发表于 2013-4-2 14:03:24 | 显示全部楼层
首先, 一个物品只会交给一个线程处理。
我想对于绝大部分的物品来说, 处理的先后并没有关系。 稍加规 ...
dahao 发表于 2013-4-2 01:19 PM


最基本的切分方式是以玩家为单位,每个玩家用一个线程去处理他的输入。比如你输入kill xxx,这个命令要涉及到:
me - 玩家自身
xxx - 对手
environment - 房间
xxx's guarder - 保护xxx的人
xxx' suicong - xxx的随从

如果另一个玩家也输入kill xxx,那么两个线程之间就有一大堆同时要访问的对象。这些对象就需要加锁。
北大侠客行Mud(pkuxkx.net),最好的中文Mud游戏!
发表于 2013-4-2 21:47:45 | 显示全部楼层
最基本的切分方式是以玩家为单位,每个玩家用一个线程去处理他的输入。比如你输入kill xxx,这个命令要 ...
jason 发表于 2013-4-2 06:03 AM



如果两个玩家在相同房间, 让这两个玩家一个线程串行处理。   
总之, 以你的聪明才智, 这点不难。

在一台机器上共享内存, 多线程运行还是比多台机器分布式运行容易处理多了。 这个不难的只要你想去做。
北大侠客行Mud(pkuxkx.net),最好的中文Mud游戏!
发表于 2013-4-3 00:35:05 | 显示全部楼层
我觉得把心跳处理独立线程就好了,需要互动环节交回主线程处理,也就是有一个独立的心跳处理线程,其他处理流程负担没有那么大
北大侠客行Mud(pkuxkx.net),最好的中文Mud游戏!
 楼主| 发表于 2013-4-3 10:08:13 | 显示全部楼层
我觉得把心跳处理独立线程就好了,需要互动环节交回主线程处理,也就是有一个独立的心跳处理线程,其他处理 ...
seagate 发表于 2013-4-3 12:35 AM



    最大的压力还不是心跳。最大的压力是一个房间如果有100个人,其中一个人出一招群体攻击,这100个人要被拿来进行计算。对北侠,也就是襄阳保卫。
北大侠客行Mud(pkuxkx.net),最好的中文Mud游戏!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|北大侠客行MUD ( 京ICP备16065414号-1 )

GMT+8, 2024-11-23 11:25 PM , Processed in 0.012280 second(s), 13 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表