谈谈cgi的速度问题

 

关于php cgiasp的速度比较一直是一个争议的问题。

本人初入门是从perl开始的,后来学习了aspphp因为编程语言的简单,一段时间曾经迷上php。后来用多了,便发觉这些语言各有优缺点。

我个人编程使用语言主要视乎程序的类型(其中由于对phpperl较为熟悉,因此采用较多)

下面是我对asp,php,perl使用的心得。

1.

其实,一般的cgi程序,这3种语言的速度比较是不明显的,这里面常常会有误区,很多人采用不同的程序进行比较,但是由于这些程序结构和篇写人员的水平不一样。往往程序速度的区别是由程序结构本身而非语言区别产生的。

我曾经在本地些个一个留言本,分别用3种语言比较(文本格式),结果发现本地执行的速度没有什么区别(win98上)但是,如果写一个不断刷新的聊天室,在win98+iis上,明显asp快点(因为asp与iis)是集成的,而且是线程,而cgiphp 都属于外部调用的cgi,显然,繁忙的多人的http请求时,asp占优(iis服务器)。

另外测试文本格式的论坛程序,发现三种程序的处理速度区别不大,而当使用数据库的贴子数量很多的论坛的时后(同样在win98上)使用IIS+cgi+mysql IIS+php+mysql的速度都不比IIS+asp+access慢,而使用apache+cgi+mysql要比iis+cgi+mysql快,可见这里主要的区别与数据库类型和web服务器有关系。

而当一些人用一个IIS+ASP+ODBC(数据库)与IIS+CGI+文本 比较一个多贴论坛时,就断定asp比cgiphp快显然是不严谨的。

另外一点,对于小型程序,不管那种语言一般运行的时间0.5秒左右,而从远端服务器下载一个网页就要10多秒左右,显然这种速度是相差很远的。

个人总结:在NT上编写例如聊天室,新闻等网页刷新率高的程序时,asp比较理想,而象论坛,搜索这类程序使用aspcgiphp都可以选择(asp使用方便,而php.CGI可以获得较高稳定性)

个人心得:在NT上使用apache+mysql+php的效果要比iis+mysql+php好的多。

个人经验:提高效率的根本方法不是语言的选择,而是于平台的搭建,程序语言的结构和网页html代码的优化。

一个被大家忽视的问题是臃肿的html代码比程序更影响速度!!!!

举个例子,就拿这个论坛,大家有没有发现,发别贴子的速度很快而文章列表的速度较慢,大家可能以为是搜索数据库慢的原因,其实不然,当大家看到广告条出现的时候,

程序已经执行完成,而剩下的时间都是下载html网页的时间(因为有大量的表格,因此影响浏览速度,浏览器在/table出现后才出表格)。

2.

如果说程序的编程应用能力,显然phpaspperl不在一个档次,perl的数组功能,字符处理功能,能领众多难题轻松解决,尤其perl的应用模块更是举性数,为编程带来方便(不过,很多人没有使用这些模块的条件)。

perl在某些字符处理能力方面比语言老大C/C++还出色,这也是perl在互联网应用广的原因。对于php其实就一个集成块语言,不很多元件集成一起,因此,虽然它的模块很小,但很多web功能集成在语言里,因此多功能用很小的语句就能实现,因为语言简练,特别析合初学者使用,当是一些高级性能,和系统结合的性能不及perl,比asp也逊色。

但是使用他编写程序,一定能节省你很多时间。对于asp,因为其商业原因,制约了很多性能,很多组件都要收费,源代码保密,显然没有上述语言的大度,同时局限面仅仅是windows

个人心得: 要想提高你的web编程思维和总体水平一定要学习perl.初学者php是不错的选择。

3.

本人作了cgiphp的比较,cgi采用进程,php采用模块cgi程序瞬间执行的CUPphp大,但执行完成以后马上退出CUP和内存(时间一般为0.0X秒) 而php则要占用好长一段时间(大概数分钟),另外cgi占用的内存比PHP小。

因此对于浏览量不选很大的程序(10万次/日)以下的程序用进程CGI比PHP更能节省服务器资源而频繁执行的程序(10万次/日)以上会节省cup资源,如果把CGI编译到apache模块时,CGIphp能节省更多的内存(注意:以上在两种语言都使用数据库程序的前提下的比较)。

而在linux上使用cgi+dbi连接mysql,与php连接mysql的时间区别不是很大。

关于unixNT性能的比较就不用说多说了(一个是高端产品,一个是普及产品),不在一个档次,但是如果从普及面和入门来说,NT要占优

本人结论,程序是否占资源,最主要的原因与程序结构有关系,对于信息量大的程序,能够用数据库写时尽量用数据库。

当有数据检索时,用数据库优于dbm,dbm优于文本。

而没有多条数据检索时正好相反,打开文本文件的速度要比连接数据库块。

文章来源于http://www.lupaworld.com

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值