• 10 月份来北京肯定最好,秋高气爽,天气不冷。

    在北京过冬天,在室内明显比上海舒服太多了,因为室内有暖气。我在北京过了 3 个冬天,春节一回上海,已经完全不适应了,室内都冷到心里去了。

    不过要我让选择生活在哪里,我还是选择上海,因为在北京过冬天,实在很不方便:

    1. 整个冬天,晚上哪里都不能去,太冷了。一个冬天人都是待在室内的,不是公司就是家里,一点室外活动都没有,太憋了,周末也没有什么地方可玩了,到处一片萧瑟。我在上海的时候,即使冬天,每天晚饭后都要出去散步一个小时。

    2. 北京冬天的空气污染到了一个令人发指的程度,整个城市烧煤供暖,一个冬天天气都会灰蒙蒙的,空气污染物天天爆表,实在不堪忍受阿。

  • Ruby on Rails 线程安全代码 at 2013年05月13日

    #5 楼 @vincent 是这个道理,因为访问 memcached/redis 足够快,所以很大程度上可能没有必要用 pool,不过我也期待你的测试结果来说明问题。

  • Ruby on Rails 线程安全代码 at 2013年05月13日

    #3 楼 @vincent pool 本身有一定的调度开销,每个缓存请求先从 pool 里面分配一个连接,使用完毕再归还连接。多个线程同时访问缓存的时候,pool 的调度分配操作其实也是要加锁的。所以你最后计算 poll 的加锁调度,pool 的分配归还,可能还不如多线程加锁用一个连接划算呢。

  • Ruby on Rails 线程安全代码 at 2013年05月13日

    dalli 和 redis-rb 都是线程加锁的,但实际用起来,其实不会成为瓶颈,因为这些访问速度非常快,而且你一个进程不会开到几百个线程同时并发的,所以正常用就好了。

    如果非要用 connection pool 去调度 dalli 和 redis-rb,pool 本身也有很多调度开销,反而可能得不偿失。

  • #13 楼 @outman 没什么特别需要注意的,database.yml 里面 connection pool 的数字要和你线程池的数字保持一致,另外避免在内存当中维持全局可写的变量。

  • #15 楼 @outman 改了个文件名,现在可以了。

  • #2 楼 @imlcl Passenger 性能不如 unicorn/rainbows,这个我测试过,而且差的还挺多。Passenger 最大的毛病是和 nginx 绑定的太紧密,每次升级 passenger,要连带升级 nginx,迁移很多 nginx 的配置,非常痛苦。

  • RubyConfChina 2013 计划 at 2013年04月22日

    门票应该贵一些,可以分为公司套票,个人门票; 另外建议可以在北京搞一次,那样我可以帮不少的忙; 还有,今年我要报名做 speaker,我很想讲一讲 ruby off rails,哈哈。

  • 在 Windows 上的话,用 JRuby 好了。Java 在 Windows 上的性能和兼容性都不错。

  • RubyConfChina 2013 计划 at 2013年04月21日

    @lgn21st 为何从上海回青岛定居?

  • V8 里面很多核心代码为了追求性能用汇编语言写的,这个没办法比。

    但具体到做实际的项目,考虑的因素很多:语言的完备性,库的成熟度等等。

    非实时性的项目,其实用 Ruby 性能也不会差到哪里去,但是语法和库会好很多。目前 Node.js 虽然库很多,但是大多都不太成熟,真正拿来做大项目,还是很坑爹的,比如说著名的 socket.io,我们用下来就非常非常坑爹,项目下一个版本将彻底扔掉,自己实现。

    说到写非实时性的 web,用 node.js 的 express 虽然不是不可以,但是一旦服务器端逻辑复杂,特别是涉及到带有事务性分支流程判断,你的 js 回调我保证你写的吐血。

    总之,更多关注应用的场景吧。node.js 绝对不是万灵药。

  • 如果负载比较低,没有多大差别的。如果用来做 API Server,请求负载很高的话,会有比较大性能差别。看我这篇Ruby 社区应该去 Rails 化了 去掉 10 个是 OK 的。

  • 非常给力,in the queue

  • Ruby Web 框架简单介绍 at 2013年04月09日

    #58 楼 @bhuztez

    1、请求调度 2、负载均衡

    不一定是 nginx,也可以是 lighttpd,haproxy,甚至或者直接用 iptables 也可以做简单的 dispatcher。

  • #3 楼 @cisolarix bugfix 是好事。

  • #2 楼 @cisolarix 我觉得呢,robbin_site 就是一个很好的 padrino 的实际案例。

  • Ruby Web 框架简单介绍 at 2013年04月09日

    #50 楼 @bhuztez 你这种用法其实是有问题的,多个进程监听一个端口,存在惊群问题。无论如何都需要一个 dispatcher 来负责请求调度和负载均衡,无论是用 nginx,还是别的什么方式,这不仅仅只是一个端口监听的需求。

  • Ruby Web 框架简单介绍 at 2013年04月09日

    #50 楼 @bhuztez Goliath 不支持监听 unix socket。

  • Ruby Web 框架简单介绍 at 2013年04月08日

    #39 楼 @outman 需要,因为 Goliath 每个进程只能利用 1 颗 CPU 内核,在多核服务器上,你需要启动多个 Goliath 进程,分别监听不同的 tcp port,所以前面需要 nginx 做请求分发。

    另外就一般应用而言,我没有测试出来多线程比 fiber 差多少。我还是建议用 rainbows 跑多线程,rainbows 自己有进程调度能力,而且多线程方面无论是驱动还是库兼容性都比较好。

  • 0.11 确实内部改动挺大的,解决了不少 bug,值得用。

  • 多线程环境下不是 close 连接,应该是把连接归还连接池,试试改成

    ActiveRecord::Base.clear_active_connections!

  • Ruby Web 框架简单介绍 at 2013年03月31日

    #26 楼 @cgyy siege 功能比 ab 丰富一些。