|
作者: aoming [aoming] 版主 | 登录 |
特别是当文件中数据较多时,打开的速度就变的特别慢. 听老大说过20cn的数据(比如密码)也是用文件的方式保存的,但是发觉20cn打开帖子的速度却不慢,请问老大能否介绍一下是怎么搞的?谢谢! 哦,对了,服务器UNIX平台,支持perl_cgi. |
地主 发表时间: 11/20 18:31 |
回复: NetDemon [netdemon] ADMIN | 登录 |
加快perl-CGI速度的最好方法,就是使用fast-cgi,不过这需要服务器的支持,好多虚拟主机服务商都不会提供 而普通的perl打开文件只有一个open可用,因此想要加快的话,只有让文件尽量小,因为它没有类似C的文件指针,不能只读取文件的某一部分。 就20CN的论坛来说,帖子的存放是这样的: 每个板块一个目录,此目录有一个类似索引的文件list,每一行的内容是 帖子id|标题|作者|回复者|时间 这样当打开某一论坛的时候,只需要读取这个文件,把内容print出来就行了 当点击时再根据id读取这个id的帖子,而每一个id也是一个文件的。也是直接print出来就行了 这样有比较快的读取,不过发帖时需要处理的工作就比较多一点,不过没关系,因为发帖比读帖少了很多。 例外每一个用户也是用一个文件来保存其数据的,总之就是以小文件的形式来提高速度的 至于程序本身没什么好说的,很普通,读取文件的函数就是这样 sub open_read { my($file)=@_; unless(open(FH,"$file")) { errmsg("Can't Open File: $file!"); exit; } unless(flock(FH,LOCK_SH)) { errmsg("Can't Lock File: $file"); } } |
B1层 发表时间: 11/25 23:00 |
|
20CN网络安全小组版权所有
Copyright © 2000-2010 20CN Security Group. All Rights Reserved.
论坛程序编写:NetDemon
粤ICP备05087286号