1
sqbing 2012-09-19 08:08:28 +08:00
看结果,没有可比性啊
|
2
guotie 2012-09-19 08:56:56 +08:00
go怎么会这么差?!
|
3
ch_linghu 2012-09-19 09:42:47 +08:00
java 用的是 Jetty, golang 用的是内置的 http server。这可能是原因之一吧。
|
4
frittle 2012-09-19 10:21:24 +08:00
|
5
huacnlee 2012-09-19 10:40:56 +08:00
超出预料啊!
|
6
DeepBlue 2012-09-19 11:19:03 +08:00
数据库访问层的实现引起的问题,与语言本身关系不大。
我相信一个烂程序员可以把C写的比PHP还慢:) |
7
virushuo 2012-09-19 11:57:05 +08:00
这个显然是数据访问层造成的。
另外Java也确实没有人们认为的那么慢,在超过2个core,并有大量内存的机器上,性能还是很不错的。 |
8
lidashuang 2012-09-19 12:06:10 +08:00
再差应该也比Ruby快吧
|
9
iwinux 2012-09-19 12:11:27 +08:00
我比较关心 startup time 诶,这个 Go 应该胜过 Java 吧
|
10
fwee 2012-09-19 14:38:15 +08:00
@lidashuang 关键GO很重要的优势就是‘速度快’。而ruby不是
|
11
soulhacker 2012-09-19 15:04:44 +08:00
Java 过了幼儿期之后一直都是服务器端性能标杆,和高效的 C 代码也只差一个数量级;JVM 主要问题是初始化慢以及 GC 带来的内存应用问题,不过在 always-on 的服务器端初始化问题较不重要。
不太了解这个测试中 Go 具体性能问题在哪里,不过这个语言还年轻,这么比不太公平。 |
12
yys 2012-09-20 11:15:35 +08:00
什么都可以快 什么都可以慢 要看应用上下文 如具体人,具体应用 ...
|
13
ikbear 2012-09-20 12:20:59 +08:00
Benchmark redis-like server
http://vladimir-mihailenco.appspot.com/articles/5001/benchmark-redis-like-server/ |
14
clowwindy 2012-09-20 18:00:58 +08:00 1
语言之间最重要的差别是语法。作者比较了两个语言代码的差异,这点很有意思。
性能测试没意思,比的是两个 http server 实现的优劣。如果原理一致,http server 之间性能是没什么差别的,就好像拿 Tornado 和 nginx 比静态文件的处理,速度也差不多。 比较语言本身的性能,就要上各种算法。 量化后的结果可以看 Computer Language Benchmarks Game,Java 7 速度和 gcc C 是可比的(慢1~2x 左右),Go 是一门慢 3~10x 的语言,和 javascript V8 比较接近。Python、Ruby 基本上是慢 10~100x 的语言,速度上和上述几种语言不具有可比性。 http://shootout.alioth.debian.org/u32/benchmark.php?test=all&lang=go&lang2=gcc 我觉得从这点上考虑,javascript 前景更好一些,具有和 Go 差不多的性价比(速度 / 代码大小),具有成熟的社区,庞大的库,能做的事情覆盖前后端,移动,甚至线下处理。我现在就经常在 mapreduce 上用 node.js 的 cheerio 分析网页。除了 jQuery 的 API,还有什么语言的什么接口更适合用在网页分析上呢? |
15
skywinger 2012-09-20 22:25:29 +08:00
Scala在JVM上,性能很不错,可以试试
|
16
ayanamist 2012-09-21 00:19:28 +08:00
玩了两天Go,这语言不改名字,将会和C#一样叫好不叫座。
在搜索引擎中,用go加问题根本搜不出东西,而用golang则只能在官方小组里找到有价值的信息(因为正常发帖都是谈Go) 第三方包的严重匮乏,官方文档也极度匮乏,社区支持因为名字的问题悲剧了。这样的语言性能再好也不见得能流行。 另外Go还有一个坑:gcc-go和go build编译出来的东西完全不一样,前者有时候性能可以是后者的2X。但前者不受官方重视。 其实话又说回来,Go语言的设计没有非常突出的地方,Go的代码应该是可以完美自动转化成相应的C代码的 |
18
ayanamist 2012-09-21 15:18:56 +08:00
@feilaoda 欢迎吐槽。写的比C舒服的语言多的很,不管是Python、Ruby还是Java、C#,甚至满是坑的C++,没必要圈死在Go上。
Go的语法确实从理论上可以完美转换到C上的,interface是一种编译期的检查,func (thisO *Object) funcName(Arguments *Object) Object{}这种完全可以替换为Object funcName(*Object thisO, *Object Arguments){}这种C格式。至于for语句就更不说了。map和slice也都在C中有第三方库可以支持,Go只是内置了这种支持。select语句是对select、epoll、kqueue的上层封装,chan是socket queue的上层封装。range也只是一个utility。所以Go的核心语言设计是可以和C完全对应起来的。语言设计本身,Go离C并不远,距离远小于C++、Java、Python、Ruby这类真正的高级语言。 唯一值得陈赞的就是GC的设计了,不过GC设计本身就很有争议。 我个人觉得Go的定位以及命名都充满了迷茫。 |
19
reus 2012-09-21 15:38:48 +08:00
第一次见用web应用来比较两个语言的……
要比就该把数据库、http服务器这些都去掉 |