恐怖的大富翁源代码?(200分)

  • 主题发起人 温柔一刀
  • 开始时间
干吗不用ASP+delphi COM?

我个人认为,大富翁的速度主要是线路问题,但是source有些地方也好像有点怪怪的?
不知是我asp水平不够、还是source中有些地方写的有点另类。

 
晚上还上网?

不过我还要罗嗦一句 :)
也许是我没说清楚吧,但我根本不知道连接不上去是不是因为IIS死掉,怎么会说IIS一定死掉呢?
其实我看到你们的程序当时就想到“IIS/ADO肯定可以自动释放对象,不然机器早死了”
我还忘了说在连接很困难的时候,还是偶尔能进去一次的,因此恰好说明机器反应速度问题,
^^^^^^^^(我真正想说的是这个问题)
唉!又归结到我的表达能力了 :-(

另外,说实话,如果速度都象这两天,我还真觉得挺好...

OK, goog trip, good luck.
 
温柔一刀:你是从哪个代理上的?

我昨天下午根本上不来了:-(

现在速度还可以!
 
又无搞错?就这个问题将了这么半天。
究竟是不是释放,是ADO的问题,还是ASP的问题,还是VBSCRIPT的问题?这是最关键的。
就如同SESSTION是什么时候消失的?究竟是怎样消失的?试谁控制的?
SESSTION与创建的对象有没有什么关系?是不是释放机制相同?
有谁能解决这个问题,我愿意听一听?
我也写了很多ASP的东西,说实话,很少SET——〉=NOTHING的,惭愧,但我似乎听说过
可以不释放的,究竟是怎么样?谁能测试一下,得到满意结果,我出200大洋
 
我也想知道结果。
 
看了上面很多帖子,那一个能提速我不知道,
我知道-->
我用163拨号上网,访问慢,
我用公司的Proxy(美国出口)快!
我不懂是不是象YYsun所收是路由器问题。
 
直接用脚本写的程序本来效率就差,
为什么不写MTS组件?由MTS来管理对象的释放。
速度提高很大,我做过。
 
大富翁的分類,界面也不大好,為什么不學學國外的類似網站呢。
http://www.expertsexchange.com/
http://www.expertcentral.com/
http://www.abuzz.com/
http://www.questionexchange.com/
http://www.ask.com/
http://www.askme.com/
http://www.cosource.com/cgi-bin/cos.pl/folder/list/
難得有這么好的人氣,不做得好一點太可惜了。
看著高手一個個離開,真是讓人難過。
 
终于看见了,
大富翁真的好慢。
大富翁代码一有时间就会重新写,以前是改,基本没有整理过,多数据库的操作也
过于频繁,我这里有对数据库操作的优化方案,可以快很多。
我觉得大富翁IIS的主要问题是慢(各种原因)引起的雪崩。如果你们坐在服务器
旁边看着任务管理器里一个一个进程产生和消失以及sql server操作数据库时的疯狂
就会明白大富翁的富翁器好累的,我虽然没在大富翁的服务器上看过,但类似情景
我是看过的。慢可以是产生的进程挂在哪里 ,这样IIS就要多产生更多的进程来执行
asp,直到进程多到和sql server一起把服务器的所有资源吃完。别以为你们刷新不要
钱,服务器可是要付出代价的。
所以要会有三个办法,1、线路要快,2、代码和算法优化。3、更快的系统(软硬件)
否则服务器对你们的反应就是“拒绝服务”。其实这个道理和黑客攻击雅虎是一样的。
只是攻击大富翁服务器太容易了,只要大家一起多刷几下就会一起“雪崩”效应,于
是服务器就会崩溃。
-- 一个没有结束,另一个又发生了,于是慢些,导致更容易发生前面的事情,
所以会在一个拐点上一下子进程直线上升,然后一大堆进程退不出,所以就
慢了,要知道iis调用asp和调用isapi是相似的,并发需要有一个进程就产
生一个dll,而这个dll一般不退出。不信自己测试。

 
这种雪崩是什么原因引起的呢?跟许多人挂在这里,然后干别的事有没有关系?(我就经
常这样),不能让一个 session 过一段时间就自动死掉么?
 
先大概说一下

数据库:
记录集:
在大富翁上你可以发现,最常使用的是待答问题第一页、第二页..。
而每次都必须做一次全数据库检索和排序,虽然有cache的存在使得实际上效果很好,
但这必须是并发少为基础的。
方案:第一次做此检索时记录下这个检索集合,即id系列。下次就可以使用in (id list)
当有记录被提升时,去掉id list的它或最后一个,把他加到第一个。如操作肯定比
数据库检索有效率,因为这样最大限度的利用了原来的结果。
扩展:检索关键字
设定一个库 字段为 key,idlist,count,maxid
当进行一个查询 比如 关键字“Delphi”则查询开始。记录id list,count,和检索时
数据库中最大的id号。当再次查询时如果数据库中的maxid>检索集的id号,则可以
select * from xxx where id in ( idlist ) or id > id maxid
其实还是利用以前的检索成果。
用比较小的代价换取大的检索性能应该是值得的。

读取数目,题目数目,回答数目等等,能不用query就不用,直接写到数据库中,变化时
更新,这样虽然多了写的时间,但大大少了读的时间。

网页:
现在的所有网页都是asp,这是绝对没有必要的,比如这个页面,你看和我看有差别吗?
没有,差的只是一些个性化的东西,这些东西可以用include,也可以用frame,方正办法
多多,而不变的部分可以写到文件里,比如这个页面,可以在有人加帖的时候写成一个文
件,而asp完成个性化部分后,把这个文件包含进来就可以了,何苦在各位读的时候都苦苦
都建立一回。

代码优化:
释放和缓冲是矛盾的,这个需要服务器和代码配合好。所以我先不多说,但这个优化
是肯定的,现在的代码在缓冲上并没有什么利用,其实不合理。特别在recordset上尤其
明显。
还有就是字符串,其实这个很容易被忽视,包括写delphi时,很多人以为
for i:=1 to 10000 do
s:=s+'hhhhhhhhhhhhhhhhhhhhhhhhhh'+#13#10;

st:TStringList;
for i:=1 to 10000 do
st.add('hhhhhhhhhhhhhhhhhhhhhhhhhh');
区别不大,其实大大的错了,第一个其实奇慢无比。第二各很快。
delphi是如此,基于vb的asp更甚之。所以一定要改。

最后拜托,我实在近期没时间,哪位完成我遗志了,请献给大富翁吧。
 
yes,i am coming,soul!heihei
 
我也要受不了了,太慢了
 
温柔一刀,您好!

麻烦你去看一下,没办法,别人的回答不好,只好问你!

http://www.gislab.ecnu.edu.cn/delphibbs/DispQ.asp?LID=439864
 
直接用asp+ado的话,硬件/软件再牛B都有死掉的一天
关键是在算法上想办法,看看李维的第二本书的第8章吧,应该用所收获的。
 
给为斑竹谁能透露一下,现在大富翁的常客有多少人了?
 
用的是ACCESS还是SQL SERVER?
 
bpearl:信息量你看看欢迎页的263计数器就可以知道了。

现在 delphibbs 首页大致日均访问800次,每分钟输入1-2个贴子,察看次数要多些。
http://top1.263.net/count/top.dll?Type=sharkpwd&id=A8389&ReferID=A8389

现在的服务器:HP 服务器 300x2 CPU + 512M 买的时候带 NT4,
delphibbs 使用 ASP, 练功场使用 Apache + Tomcat / JSP + .mdb
 
顶部