#60 楼 @killyfreedom 貌似 EM 默认用的 select,你可以换成 EM.epoll 或者 EM.kqueue 再试试
#58 楼 @killyfreedom c 100 n 1000 比 c 10 n 1000 还强 可以到 2700+
#55 楼 @killyfreedom 加了 JSON.dump 还是有 2400 左右
#53 楼 @killyfreedom em-mongo 不带连接池,但是 em-synchrony 有一个可以创建 Pool 的东西。
你可以在 ruby 2.0 下跑跑看我的代码,我跑下来速度不差。
#50 楼 @killyfreedom 我又更新了一下,之前是用 1.9.3 的,现在用 2.0.0 测试了一下,跟 Node 比较接近了
#50 楼 @killyfreedom 结果还是 Node 快,你这个测法不对把,1000 个并发,100 个请求?
发现 @luikore 嘴上还受伤了
#23 楼 @killyfreedom mongodb 我没测试过,但是我测试过 memcached 在 EM 和 Node 的性能,用的 EM 自己提供的 memcached 协议实现,Node 用的是 https://github.com/3rd-Eden/node-memcached ,结果是 EM 快,不包含 web 环境。
用了不同的 gem 肯定会有一些是阻塞 IO 的,即使使用 EM,你的代码里是阻塞的,那最后还是那样。Node 的话,估计他的插件本身都是异步 IO 的,所以这样比较还是不公平的。我觉得问题不在 EM 啊!
= = 我用了 40 个插件。。。
触目惊心,ruby 程序之泪死活要变成一行 误
a = [1,2,3,5,6,9,10]
arr = []
a.inject(nil) { |last, e| (last && e == last + 1 ? arr.last << e : arr << [e]) and e }
省个局部变量
a = [1,2,3,5,6,9,10]
arr = []
a.inject(nil) do |last, e|
arr.last << e if c = (last and e == last + 1)
arr << [e] unless c
e
end
a = [1,2,3,5,6,9,10]
arr, last = [], nil
a.each do |e|
arr.last << e if c = (last and e == last + 1)
arr << [e] unless c
last = e
end
You have to install development tools first
,检查 Xcode 里 Command Line Tools 装了没有,或者用https://github.com/kennethreitz/osx-gcc-installer/
#32 楼 @wujian_hit 一般会继承org.apache.lucene.analysis.Tokenizer
这个抽象类写一个 Tokenizer,然后写一个类继承org.elasticsearch.index.analysis.AbstractTokenizerFactory
,做个工厂类,这个可以通过 elasticsearch 的 index 配置,传入一些特定参数,然后传给你的 Tokenizer,再写一个类继承AnalysisModule.AnalysisBinderProcessor
用来在 elasticsearch 启动时,注册你的 TokenizerFactory。
这是基本流程。。。伟大的爪哇
蛋疼写法来一个
class Bob
CONDITIONS = [
{ when: -> words { words.nil? || words.strip.empty? }, answer: "Fine. Be that way!" },
{ when: -> words { words.upcase == words }, answer: "Woah, chill out!" },
{ when: -> words { words.nil? || words[-1] == "?" }, answer: "Sure." },
{ when: -> words { true }, answer: "Whatever." }
]
def hey(words)
CONDITIONS.detect { |c| c[:when].(words) }[:answer]
end
end
额 放在我生日那天,没法来玩了啊!!!
@lgn21st daniel 把蝉游记写成禅游记了
大声随便回个帖都可以拜膜
碉堡了啊,好期待