照着 TechEmpower 写了个 Benchmark,比其他删掉了,就做了个查询的测试,结果取的是平均值接近的整数。
https://gist.github.com/kenshin54/6724497
ab -n 1000 -c 10 http://localhost:3001/
ab -n 1000 -c 10 http://localhost:8080/
Average:
Go
Requests per second: 6000 [#/sec] (mean)
Ruby
Requests per second: 4000 [#/sec] (mean)
Go 是快,但是 Ruby 也没慢太多。
Benchmark 一直都是很无聊的。。。。
主办大会的童鞋都辛苦了。
(没有买票的默默去面壁了。)
#71 楼 @astaxie 请指教啊,我看了下你给的网站在 Github 里的代码,https://github.com/TechEmpower/FrameworkBenchmarks,
里面的 Go 代码(我不是很懂 Go,说错了 Sorry)。我目测数据库访问是一个裸的 MySQL 驱动,用的是 SQL 语句 + PrepareStatement,Http 方面是net/http
,貌似是一个内置的 Http 包,里面用的handleFunc
和ListenAndServe
我 Google 了一下,好像是说是类似异步的方式处理请求的。 帖子 1 帖子 2。
但是对应 Ruby 的框架
的测试,我看到了 2 个,一个是 Sinatra,一个是 Rails,这 2 个本身不是异步框架,里面用的也是 ActiveRecord,是一个 ORM 框架。
当然我不是要证明 Ruby 快,我知道 Ruby 不快。但是从这测试的例子看起来,也不是在同一个平面去比较的。
猜测是页面上循环时加了 =
比如 <%= comments.each do |comment| %>
这里最前面那个=
去掉
支持蝉游记
看来我缺乏高理想,高素质,为了一张票出卖了灵魂,玷污了神圣而又高尚的开源社区。不行了,上帝派人来惩罚了,逃啊!!!(票我还是要的,下次再提高素质吧)
不测
抢
抢楼
man 2 socket
求点喜欢
抢票了 :bowtie:
小心盗贼
其实很多 rubygems 都有接口,只是不存在语法上的接口。常常会看到一些方法就写了个方法名,其实就是 stub,内部会再用个子类去实现,这就是接口了。
每个月总有那么几天。。。
reposotory 是故意的吗?
我是路过 纯围观
return result = "Pc#{pc} : * #{result}" if price > 1000
被你自己 return 掉了
#17 楼 @larryzhao 。。。好吧
#15 楼 @larryzhao 那为啥 co-worker 都是 ok 的?
#13 楼 @larryzhao 那么神奇,整个重新从 git 仓库拉一份代码下来试过没?
#9 楼 @larryzhao 那就项目的问题了,排查下有没有更新啥 gem,或者改过啥代码,导致卡死,以前我也出现过,后面都 debug 到 rails 整个启动流程,才定位出原因。
#3 楼 @larryzhao 新建一个空项目也会这样?
#7 楼 @ChanceDoor 嗯 只有 stdin 和 stdout 会,stderr 不会,文档是这么说的。