今天听人说 php 运算能力不比 java

2015-05-28 20:16:11 +08:00
 whatisnew

说是 php 内部使用一个大 hash 表来操作,运算能力比较弱,求证实。

10810 次点击
所在节点    PHP
63 条回复
yuankui
2015-05-29 09:14:33 +08:00
php就读读数据库,渲染渲染html即可..
aksoft
2015-05-29 09:23:07 +08:00
你用C啊,你怎没不拿C和java比
hylent
2015-05-29 09:28:04 +08:00
PHP的数据结构一般都是用HashTable,这一种数据结构涵盖了其它语言的数组、字典、列表等。
PHP内部在类属性、类方法、变量符号表、全局函数符号表等多处使用了HashTable。
通过给定键找值,需要计算键的hash值,然后再遍历hash碰撞的情况(如果有)。这样的话就需要一些额外的计算,可能会对效率有影响。

当然也有Spl系列的数据结构,不过用的不多,不知道效率怎么样。

应该会有一些专门用于数学计算的库,它们的原理大概就是一个包装器,把php的变量解析出来转化为自己理解的数据类型,然后计算,然后将计算结果包装成php变量返回。这一般对效率不会有太大影响,可以尝试一下。
jiongjionger
2015-05-29 09:57:25 +08:00
PHP的确不适合计算密集型应用。重度计算还要求低延迟的Java也不是很合适啊
wdlth
2015-05-29 10:06:38 +08:00
大多搞科学计算的还是用Fortran,Intel的编译器、Nvidia的CUDA等都支持,讨论语言的数值运算速度是没有意义的。
akstrom
2015-05-29 10:16:51 +08:00
数组一直是php的痛阿,何谓"超大n维度的数组或者对象",你考虑过php的感受没有?
incompatible
2015-05-29 10:18:09 +08:00
@est AbstractSingletonProxyFactoryBean这种名字听起来就跟java语言和jvm没什么关系。
没猜错的话应该是spring里的东西?
RisingV
2015-05-29 10:36:01 +08:00
@incompatible spring的东西无疑
ymdqqqq
2015-05-29 14:09:35 +08:00
PHP确实各种用hash table,但并不是所有东西都用同一个大table啊亲!!!

至于数值运算、复杂的数据结构、算法实现,请调用现成的库函数或者正则,各种C++实现,性能有保证。

如果你碰到库函数、正则都解决不了的问题,那多半有现成的工具可以解决。

如果以上都解决不了你的问题,好吧你至少是几亿PV这个量级的了。。。

最后再喊一句:PHP是世界最好的语言,不服来战^_^
LittleMK
2015-05-29 16:43:45 +08:00
世界上最烂的2种语言有啥好比的
xiaxiaokang
2015-05-29 16:44:26 +08:00
@thinkif 听说nodejs是世界最牛逼的语言!
1etters
2015-05-29 16:45:11 +08:00
差很远的
zhicheng
2015-05-29 16:49:23 +08:00
天了噜,PHP 哪里来的自信要和 Java 比性能。你是百度出来的吗?
aliang032
2015-05-29 17:42:51 +08:00
Zend引擎下PHP的运算能力比java差很多,不过HHVM下PHP的运算能力应该不比java差多少
typcn
2015-05-29 18:16:40 +08:00
Java 做表面上 benchmark 吹的多么多么屌
下载下来不够 100 并发,装逼也得有个限度。

如果单纯的输出网页 Hello World ,可以准确的告诉你,PHP 快。
你要是做数学运算,Java 比 PHP 快,然而对于 NVIDIA CUDA 之类的 C 库/硬件计算,还是慢的翔都出来了。
lvfujun
2015-05-29 18:21:24 +08:00
@hooluupog 超过c\c++你开玩笑呢么.
@aliang032 HHVM绝对不会比Java 差哪去.
stanhou
2015-05-29 18:32:00 +08:00
网站的瓶颈永远在数据库端。这句话要我说几遍。
hooluupog
2015-05-29 19:26:11 +08:00
@lvfujun 开没开玩笑,你自己google一下就行。
msg7086
2015-05-29 20:07:01 +08:00
java的运行速度已经被人笑话很久了
deepreader
2015-05-29 20:13:16 +08:00
@stanhou https://www.techempower.com/benchmarks/ 虽然在数据库,但是动态语言还是很受伤。。。上java吧

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/194496

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX