一个天天鼓吹PHP的人却连基本的PHP原理都搞不清楚

放牛娃1988 发布于 2014/08/31 15:02
阅读 9K+
收藏 7
PHP

更新:

很多人没看懂,我解释下。PHP执行过程分为编译和解释,编译是将PHP代码转换为opcode,解释是将opcode转换为机器码。APC可以缓存opcde,这个只能解决重复编译的问题,不可能解决重复解释的问题。世界上唯一不需要解释就可以执行的代码,只有机器码。可是在宏哥眼里,PHP代码加上缓存器就可以不用重复解释了。这种基本的解释执行模型都搞不清楚的人,就是宏哥。其他回复里犯这个错的人也很多,拜托你们水平别这么low,很打击我对中国程序员的信心好伐?@mark35 @乌龟壳

以下为原帖:

================================================

几年不来,偶然看到有人回我的帖子,这是一个关于PHP每次请求重新初始化的短连接的效率问题,如下:

宏哥:

测试环境是nginx+php-fpm+apc
这是标准配置
编译只在第一次访问的时候需要,也不存在重复解释。
web的性能,从来都不在语言上。

我的回复:

不太喜欢争论,仅罗列一些观点,作为个人的认识:
1)编译只在第一次访问的时候需要?
不同于JAVA,PHP的中间码是不可见的,所以在不开启缓存工具的情况下,每一次都需要重新编译。当然,如果用APC,ZO,EA这种中间码缓存工具,确实是不需要每一次访问都编译。

2)也不存在重复解释?
重复解释是一定有的,除非你把PHP代码编译成C/C++代码,就像facebook的HIPHOP一样,不知道你这句话有何根据?

3)web的性能,从来都不在语言上?
部分赞同,WEB的性能主要取决于框架,语言属于细节,但并非完全不考虑语言。试想,facebook采用hiphop之后,按照项目负责人的说法,由此服务器负载降低50%,也就是节省了成百上千台的web服务器,带来的经济利益以千万人民币计算,怎么能说跟语言无关呢?
再说了,讨论的是语言的性能,又不是说web的性能。你这句话难道要承认:PHP的性能确实差,但是web程序不在乎语言的性能吗?

我已经快两年不碰PHP了,看到当时这个帖子,感到还是那么好笑。一个天天鼓吹PHP的人,却连PHP的编译解释模型都搞不清楚。

这让我想起某些段子:不上班的人研究怎么放假,天天专车的人研究公共交通政策。

多年不见,@宏哥 ,安好否?


加载中
3
渡世白玉
渡世白玉

如果都搞懂了就会理性了、、

这么盲目的吹一个或者贬一个,都是狭隘的象征、、只知其一,不知其二、、

2
hlevel
hlevel

引用来自“宏哥”的评论

究竟一个什么样的人才会去发这样一个帖子?

我一直以为我们的社会充满了阳光.

究竟一个什么样的人才会去天天喷,用java, hibernate 的人呢?而且还在那死骂,死骂用java SB,脑残。而且天天吹嘘php是世界是最了不起语言? 还挂俩凡事在嘴里。。我也一直以为我们的社会充满了阳光.

既然你为喷而生,注定就要接受被喷!居然好意思说出这样的话?你一手建起的"文化",现在自己动摇了?退却了?不举了?


eechen
eechen
有些人跟宏X臭味相投,一起喷Java、Linux桌面、MySQL,当然也就聚在了一起,这无关乎PHP和PHPer的事。
eechen
eechen
回复 @放牛娃1988 : 你把它称为社区恶棍,我再赞成不过了,这货无非就是喷开源、喷Java、喷MySQL、喷Linux桌面,这就是我对它的认知。
中山野鬼
中山野鬼
回复 @放牛娃1988 : 哈哈,楼主淡定点。。。。不同的人有不同的表述风格,不要被表面影响本具有的理解力和判断力,这个对待人处事都很重要。
放牛娃1988
放牛娃1988
这是我喷他的关键,我也是PHPer,而且干了两年,这宏X太脑残了。更恶心的是,你一说他,会有若干个脑残说:“闭嘴,宏爷已经住别墅了,你挣了多少钱?”。这种论调真他妈欠揍。
eechen
eechen
我是PHPer,但我讨厌无脑Java黑,顶你.
1
eechen
eechen
opcache.validate_timestamps boolean 如果启用,那么 OPcache 会每隔 opcache.revalidate_freq 设定的秒数 检查脚本是否更新。 如果禁用此选项,你必须使用 opcache_reset() 或者 opcache_invalidate() 函数来手动重置 OPcache,也可以 通过重启 Web 服务器来使文件系统更改生效。

开启ZendOpcache后,并且关闭ZendOpcache对文件时间戳opcache.validate_timestamps的检验,那么一次请求涉及到的PHP文件生成的Opcache直到PHP重启或使用opcache函数重置才会失效,下一次访问缓存的PHP文件不会进行解析和编译,直接在ZendVM上运行内存里的Opcache。

因为PHP的Opcache机制,框架在第一次请求初始化的内容将全部被缓存,PHP不涉及数据库操作的RPS比如:for($i=0;$i<50;$i++) { echo md5(time()); } i5-3230M/Ubuntu14.04/1个Nginx工作进程,8个PHP-FPM工作进程,ab压测,虽然没有C10K,但RPS也能达到5.8K+.一旦涉及数据库操作,什么语言的处理速度都会慢下来.

百度贴吧LAMP架构(后端从C+PHP全面转向PHP):


另外鸟哥所在的新浪微博也大量采用PHP实现,这也不是小网站吧。

还有像百度、搜狗、360搜索这些搜索结果都用PHP读取数据展现,以及淘宝、天猫很多页面(比如首页)都用PHP展现,撇去PHP易用性这个优势不说,如果PHP性能真的这么不堪,你觉得这些大型互联网公司会用PHP展现数据吗?

eechen
eechen
回复 @黑白之间_true : http://pan.baidu.com/share/link?shareid=411476053&uk=4027823585 里已经说的很明了,百度贴吧架构从C+PHP全面转向PHP,也就是前后端都LAMP化,文中根本没有提及Java。
D2-Studio
D2-Studio
貌似他们的架构是,java或者C做后端,把各种接口做成服务,前端使用php来访问处理展现问题。
自主创新
自主创新
赞一个,对于数据库连接跟语言的关系又小了去,主要时间都花在请求上了
1
young7
young7
其实我是支持楼主的,从本次上看楼主原理上是没出错。而从历史上看,宏X、中X等都是一丘之貉,感觉他们爱摆弄和误导新人。
1
挖粪涂墙
挖粪涂墙
一个天天被人灌翔的人,不会在乎被你再多灌一盆的,你说是不@宏哥?
0
pantrick
pantrick
@宏哥  ,安好否?
实习导演
实习导演
回复 @放牛娃1988 : 哈哈,你总会无意中记得一些人做过什么事情,同样其他人也总会无意间记住你,哈哈
放牛娃1988
放牛娃1988
回复 @wooo : 你是谁?怎么记得我。。。
实习导演
实习导演
我记得唐明星以前很愤青的感觉
0
南湖船老大
南湖船老大

目测楼主要被群殴。看楼主的帖子,以前不是宏哥的忠实粉丝么。。

放牛娃1988
放牛娃1988
回复 @自由之信 : 对啊。。。宏哥连这个基本的道理都搞不清楚。
自由之信
自由之信
回复 @放牛娃1988 : 其实你说的没错,解释估计是一定有的,即便是opcode,还是要解释的,除非是二进制的native代码。
放牛娃1988
放牛娃1988
从来都是死对头,一见面就掐。。。
pantrick
pantrick
现在楼主清醒了
0
欣儿
欣儿
围观过,感觉……嗯……感觉……
0
夏诺风
夏诺风
围观路过.
返回顶部
顶部