北大侠客行MUD论坛

 找回密码
 注册
搜索
热搜: 新手 wiki 升级
查看: 16288|回复: 38

[mushclient]请教如何在lua程序中降低cpu占用率。

[复制链接]
发表于 2010-4-12 19:25:12 | 显示全部楼层 |阅读模式
用lua写了一个脚本,目的是对某个文档进行操作,从中提取出需要的信息。
由于用了很多循环语句,导致运行时对cpu占用过高,大约10s左右,导致mush卡的一塌糊涂。
所以,在这里请教高手,如何在程序中设定某些参数,能够分散对cpu的集中占用。
举个不恰当的例子,就是把100分工作,分成5份,每隔2s运行一份。
大概就是这样,等待解答,谢谢了先。
北大侠客行Mud(pkuxkx.com),最好的中文Mud游戏!
发表于 2010-4-12 19:30:04 | 显示全部楼层
协同 coroutine

[ 本帖最后由 ddid 于 2010-4-12 07:31 PM 编辑 ]
北大侠客行Mud(pkuxkx.com),最好的中文Mud游戏!
 楼主| 发表于 2010-4-12 19:35:38 | 显示全部楼层
我看了program in lua的coroutine部分,我理解coroutine的作用就是控制程序进程,挂起,继续之类的,但是没有在lua 标准库中找到控制时间函数,能提示一下吗?

多谢。
北大侠客行Mud(pkuxkx.com),最好的中文Mud游戏!
发表于 2010-4-12 19:38:24 | 显示全部楼层
原帖由 liccry 于 2010-4-12 19:25 发表
用lua写了一个脚本,目的是对某个文档进行操作,从中提取出需要的信息。
由于用了很多循环语句,导致运行时对cpu占用过高,大约10s左右,导致mush卡的一塌糊涂。
所以,在这里请教高手,如何在程序中设定某些参数, ...


如果控制文档操作要用到很多循环,不如换用数据库或者XML。
北大侠客行Mud(pkuxkx.com),最好的中文Mud游戏!
发表于 2010-4-12 19:39:17 | 显示全部楼层
原帖由 liccry 于 2010-4-12 19:35 发表
我看了program in lua的coroutine部分,我理解coroutine的作用就是控制程序进程,挂起,继续之类的,但是没有在lua 标准库中找到控制时间函数,能提示一下吗?

多谢。


可以参考MUSH中的wait.lua
北大侠客行Mud(pkuxkx.com),最好的中文Mud游戏!
 楼主| 发表于 2010-4-12 19:42:51 | 显示全部楼层
原帖由 ddid 于 2010-4-12 07:38 PM 发表


 如果控制文档操作要用到很多循环,不如换用数据库或者XML。


我倒是想用,但是那些东西我是一窍不通啊,hehe

谢谢解答,bow。
北大侠客行Mud(pkuxkx.com),最好的中文Mud游戏!
发表于 2010-4-12 19:44:43 | 显示全部楼层
nothank
北大侠客行Mud(pkuxkx.com),最好的中文Mud游戏!
发表于 2010-4-12 20:01:41 | 显示全部楼层

回复 6楼 的帖子

说说你想要做的事情吧,如果是为了写robot,不应该会有这么大的信息量吧,也可能是你写法上有些需要优化的。
北大侠客行Mud(pkuxkx.com),最好的中文Mud游戏!
 楼主| 发表于 2010-4-12 20:16:13 | 显示全部楼层
信息量其实并不大,大约40个字符×30行的样子,但是其中的有效字符被混杂在大量的错误字符里,需要逐个甄别出来,然后再重新组合成有效信息。

比如一句话:哥是个传说。
在txt中,"哥“在第2行,第5列;"是"在第3行,第6列,……

这样就需要对各行进行反复搜索,造成大量循环。

不知道我说明了没有……
北大侠客行Mud(pkuxkx.com),最好的中文Mud游戏!
发表于 2010-4-12 20:22:54 | 显示全部楼层
sigh
北大侠客行Mud(pkuxkx.com),最好的中文Mud游戏!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-11-2 03:37 AM , Processed in 0.011833 second(s), 14 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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