#3 楼 @zfz 好问题,我尝试回答。我想测试的是初始化时间或者说启动速度,我测试的也是空白的项目。
code run fast 和 application starts up quickly 是两个概念。production 环境对应用的初始化速度并不敏感,重启应用也可以 Zero-downtime 无缝切换
新建两个 Rails 项目进行简单的测试。
Ruby on Rails | JRuby on Rails | |
---|---|---|
ab -n 1000 -c 1 | 22.103ms | 16.275ms |
ab -n 1000 -c 10 | 22.079ms | 12.622ms |
ab -n 1000 -c 50 | 22.051ms | 12.236ms |
虽然不代表真实的项目,从结果来看 JRuby 的运行效率是不错的。
#1 楼 @peter 我是做一些 Java 集成才用的 JRuby。 抛开历史包袱的话,JRuby 的 GC 更优;另外 MRI Ruby 因为 GIL 的原因,每个进程只能跑一个线程,而 JRuby 可以跑满所以核心。
JRuby 在 production 的性能不错,可以参考 @flyerhzm 的一个 slide https://speakerdeck.com/flyerhzm/jruby-at-openfeint
关系型数据库的解决方案叫Entity–attribute–value model (EAV) 主要有三个表:
后来用上 PostgreSQL 的 jsonb 格式,jsonb 能够加 gin 索引,空间和查询性能都完胜。对上面的 EVA 作一点优化,变成两个表
MongoDB 没考虑,我的经验是大部分的数据都是 schema 的。schemaless 在 dev 时很爽,但上线后迭代也是要做 migrations
your_gem/lib/your_gem.rb
require 'kaminari'
反对做 boring 的题,题目有趣的话当作消遣和练手。
那上班一定要用魅族手机啰。
#10 楼 @yuhaidonghd Sublime Text. 打开你的文件 (譬如 xxxx.rb),进入菜单 Settings->Settings-More->Syntax Specific-User. 这时会打开配置文件 Ruby.sublime-settings.
lodop
折腾过一段时间 god,挺好用。因为我用 RVM,每次升级 ruby 都要重新 wrapper 一次。后来转用 monit
:plus1:
gem 'capistrano', '~> 3.1.0'
已经装上,正!
最近刚好在用 Mechanize。Mechanize 不支持 js,最后页面 post 的数据不一定是 form 的数据。你可以分析网页的 js,不过抓包比较快捷,抓包结果为 account 和 password
cool!
赞:thumbsup:
对于会 timeout 的,我一般用异步(Sidekiq),前端轮询任务状态,完成就给链接下载
PG 亮了!
#2 楼 @sendcloud 注册后收不到激活邮件,然后收到审核不同过的邮件
time rake test
支持,已經以舊換新。:)
不适合吧。
hstore 关联实现方法
def deparment
Deparment.find(self. properties['deparment_id'])
end
黑苹果:)