php VS nodejs VS golang

一个人创业,前期做web网站,后期根据web网站做app,rest api, 用php,nodejs,golang 这三种中的哪一个成熟,稳定,好用,速度快,功能全?

原来我是选定php的,因为成熟,稳定,网上解决方案多。后来看了下测试了下发现php和php框架的性能实在是太低了,我1g内存ssd的ubuntu,双核cpu, 在上面竟然跑 ab -t 10 -c 10 http://www.xxx.com/laravel511/public/index.php 才跑per time request 才 50. 换slim ci也才200多。这叫人情何以堪,我网站将来是想让数万人每天访问的,php的经典代表出名框架都这么低啊。怎么办。nodejs只有express框架,能跑400, 成绩不错,就是那回调的括号看得我发呆,还有nosql.golang的revel,我感觉golang一语法真别扭。还是不太成熟。怎么办,怎么办,怎么办?

共 18 个回复


wuqingtao

在同一台电脑上运行ab本来就测试不准吧,ab本身也很占资源

# 0

2_2

熟悉哪个用哪个, 除非你搞长连接。

php加载opcode缓存器后性能提高很大, 生产环境标配。

性能是早期创业者最不需要考虑的问题, 老版rails和<=1.8的ruby那性能那内存泄漏, 同时期加了opcode缓存器的php完全可以说我要打十个, twitter一样搞了起来, 至于优化, 那是后来的事。

web应用大部分瓶颈在IO, 除非你搞数据分析, 然而创业早期你一没大数据, 二没大量机器, 所以优化数据库, 减少写入, 多用缓存, 多用第三方OSS才是第一优化方向。

如果硬件成本是你早期就需要考虑的, 那我建议你别创业, startup时期防御一个脚本小子的DDOS勒索就够你一个月买上百个这样的VPS。

# 1

sky123

我不是做公司的官网。每天就几十个几百个人访问。我想做百度百科那样级别的网站。受益几代人的,工人,农民,学生,少年,儿童,老年人,妇女,少女,阿婆每天都可能搜索上来看词条内容的。我是设想每天有几万人访问的,数千人还可能同时在线的。

# 2

seefan

一天几万人访问,php足矣

# 4

FlashKnight

我的建议是,不要纠结用什么技术,就直接使用你熟悉的技术

尽快把产品做出来上线运营

否则还是不太适合创业

# 5

2_2

几千人同时在线少说也得上机柜了,就算用不到的机位也得放着冗余服务器了, 就别纠结VPS下的性能了。

那个php framework performance大多情况下一点意义也没有, 绝大部分传统业务相同机器相同业务这上面跑分最差的挺不住跑分最好的同样也挺不住。

# 6

gobird

……你不能来就想着要做百度级别的应用啊大哥。创业初期最重要的是技术选型能够满足快速迭代的需要,对于一般的团队来说我觉得php是很合适的,有很多现成的东西可以用。NodeJS很火,但是踩到坑了你能否解决?大公司可以考虑逐步node,但是创业团队技术一般还是慎重。至于Go,太新了,很多轮子都没有,对创业来说是不能接受的

# 7

forl

楼主的选择恐惧太严重了,你发的其他帖子都是这样的

# 8

lcg635

php用lumen框架吧,比laravel5高大概五倍的性能

# 9

madoka

golang 每分钟百万并发
另外效率低不是代码写点垃圾吗

# 10

chris

做web的话,node和PHP都最适合,但是node性能能较高。

golang那点web框架,跟前两者相比还是小孩子。

golang的优势不在web开发这里。

# 11

jesse

PHP的优势是开发速度快,原生PHP性能不差,最好不要用框架,PHP原本就很简单,自己简单封装一个路由、db查询就可以了,但在处理比较耗时的链接时,node表现更好,我有一个比较耗时的PHP公众号,每天都会报警,后来把一部分服务用node重写,好多了。node的promise完全可以避免回调问题,用起来不比同步的代码复杂。
至于go不应该用来写web,如果你的主要产品是web,用go丝毫不能带来好处

# 12

liuyeid

使用Php7 + Phalcon框架试一下,不可能低。虽然我也没有用过

# 13

tablecell

golang 和nodejs在内存泄漏方面,哪个更稳定一些?

# 14

strucoder

lz, 我觉得你对各种技术的调研显得肤浅。

  1. 相对于web开发来说,golang无法和nodejs比,我不是黑golang,我个人目前现在喜欢golang多于nodejs。

  2. 总的来说,就是nodejs对web开发提供的解决方案十分成熟。

  3. nodejs的回调确实难看,但是现在es6提供的成熟的解决方案。

假如你网站一天10万pv,你算算平均每秒的并发才多少?哪怕是1000w的pv对于nodejs来说毫无压力。php我不知道。我没学过。

最后就是,你测试肯定有问题。

# 15

tablecell

revel rps是多少?

# 16

a7a2

那个更适合你就用那个。
PHP 8基本接近go。
nodejs写开了更适合做前后通杀。
go最好还是用原生库去写,别用各种web框架。

# 17