免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1372 | 回复: 0
打印 上一主题 下一主题

Robbin对PHP/Ruby的一些总结 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-09-01 14:54 |只看该作者 |倒序浏览
转发论坛上Robbin对PHP的一些总结,供参考!
引用
PHP和Python/Ruby的运行机制有一个本质区别:PHP是每次HTTP请求过来以后,初始化全部资源(例如创建数据库链接、加载系统类
库,创建缓存等等),处理完毕,释放全部资源,这不像Python/Ruby之类带有GC的脚本语言,Python/Ruby是初次启动的时候初始化资
源,随后的请求就不必再次初始化资源了。
这种机制的差异带来的区别就是:
1、PHP极难出现严重的内存泄露问题,随便你代码写的多烂,反正每个请求一执行完毕,所有资源统统释放光。而Python/Ruby则需要依赖GC来回收内存,因此稍有不慎,还是会出现GC无法释放的内存泄露问题。
2、PHP每次请求都要初始化资源,这个开销非常大。所以尽管PHP解析器本身的运行速度是极快的,但是一旦使用复杂的PHP框架,那么由于需要
每次请求的时候初始化整个框架,性能的下降非常厉害,你用一个很复杂的PHP框架的结果就是整体性能被Ruby远远甩开。这也是为什么PHP社区这么多年
来,并不怎么倾向于使用框架的原因之一。
3、由于PHP这种每请求初始化资源的机制,也造成了PHP添加跨请求的高级特性相当困难,这是PHP本身一个很大的限制,但是反过来说,正是这
种限制使得PHP始终保持在一个比较简单的web语言上面,而正是这一点才是PHP得以成为互联网第一Web编程语言的原因,因此也未必就不好。
总之,PHP和Ruby的差异还是很大的,不适合放在一起比较,其实应该比较的是Ruby和Python才对。
所以我觉得Rails这种框架性做法被PHP跟风以后,其实是把PHP带上了邪路,所以不如说是Rails在误导PHP的发展。顺便多说一
句:DHH在编写basecamp之前,一直是用PHP的,并且自己还写了一个PHP的快速开发框架,他改用ruby以后,把当初自己写的PHP框架也移
植过来了,这个框架实际上是Rails最初的原型。那么为什么DHH当初不直接基于PHP做Rails呢?非要改用ruby以后,才发表rails呢?你
看看PHP这种运行机制就知道了,PHP做复杂的web开发框架并不是一条光明的道路。
Robbin的总结对PHP长短各有陈辞,不错。
末了,还是要解决选择谁的问题,我想,结论绝对不是抛弃PHP.
是否选择PHP,是否选择PHP Framework, 完全应该以是否满足你的应用为指标:
事先确定框架的性能指标是否满足你的应用,测试的时候你可能要开关各种缓存技术,而且可能要模拟出你的应用设计构架,然后决定适度、适当采用框
架。有人习惯对于脱离应用比较哪个语言或者框架好和坏,我觉得这让事情往往陷入僵局。没有面对的问题、就无从说起问题的解决方案。技术方案都是面对某个应
用的开发。不是吗?
PHP简单,这对程序员,对客户系统维护难道不是另外一个诱惑吗?如果可能的话,就尽可能用PHP吧.
另外有人提到FastCGI方式来提升php速度,Robbin说:
引用PHP跑FastCGI方式,并不会比Apach Module方式有数量级的性能提升。这是因为:
1、PHP解释器本身bootstrap速度非常快,开销很小(在不使用PHP框架的情况下)
2、PHP是“每请求生命周期”的运行模式,采用FastCGI这种进程常驻内存持续运行的方式,并没有特别的性能提升作用。
所以这方面的性能调节就不考虑了
zz from: http://koda.javaeye.com/blog/319577
               
               
               

本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u2/87830/showart_2043062.html
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP