• 一个请求要500ms就和rails框架没有关系了,因为正常的rails返回也是几十ms

    可以在一两台机器上采样看下时间消耗在哪个方法上.

    如果在redis(看你程序的流程好像也没有别的地方可以出问题了)

    你如果是用云的redis集群,他上面应该有监控,看下负载情况如何

    redis 的 slowlog 里面都是什么? (slowlog没有开开一下,2w rqs, 0.1ms 对你来说都是慢查询了,这还没有计算你一个请求有多个redis command)

    比较好解决的情况就是有人误用 keys这样的操作,去掉就好了,正常就不应该这么用

    这问题可能一眼就能看出来

    比较麻烦的是rang这种 O(S+N) 的命令,在slowlog里比较难找出来

    这种就考虑尽量改成 O(1) get set

    建议使用 datadog 这种 statsd 采样一下每个命令的执行时间

  • 接口的功能粒度 at 2016年01月11日

    开放给第三方就给两个,要求灵活,稳定 开放给自己的app用,就给一个,要求请求少

  • ruby元编程,就像暗黑法师30级会瞬移

    他不会帮你打倒敌人,但会助你冲突难关,关键时刻救命

    再说了,职场上,装得一手好逼,也是个big plus

  • 关于发送短信的问题 at 2015年12月15日

    把参数拼写成文件,然后用个测试工具发出去,强大的工具能还记录一下结果

  • 说实话,这个问题我也没有去做过

    但是如果这是面试题,我想正确应该答案是:

    我没有试过map和map!的性能问题,因为我觉得这两个性能差别应该不会太大,但是我对Ruby应用的性能问题很关注,但我觉得这样的测试只要关注别人的测试结果就足够了,关注业务逻辑优化或数据库优化的性能可以得到更多的性能回报

    require 'benchmark'
    
    array = (1..10_000_000).to_a
    
    Benchmark.bmbm do |x|
      x.report("map") { array.map { |e| e } }
      x.report("map!")  { array.map! { |e| e }  }
    end
    
    Rehearsal ----------------------------------------
    map   10.520000   0.500000  11.020000 ( 11.600892)
    map!   9.500000   0.220000   9.720000 (  9.803323)
    ------------------------------ total: 20.740000sec
    
               user     system      total        real
    map   10.260000   0.430000  10.690000 ( 10.838827)
    map!   9.510000   0.090000   9.600000 (  9.727683)
    
  • Ruby 微信开发群 at 2015年12月09日

    已入

  • 因为你有第三方请求,所以可以看一下连接数

    ulimit -n
    
    

    再看看TCP的连接数

    netstat -nap | grep tcp |wc -l
    
  • 存在内存泄露的 Gem 列表 at 2015年10月21日

    6中三

  • 做为程序猿,摸电脑的时间比摸女朋友的时间还多 有什么理由不买个"漂亮"点的 mac其实就是胸大,腿儿长,脸蛋又漂亮的那个

    只是如果你说"浪费"这点来说,mac是性价比最差的笔记本,没有之一 linus都用mac来做日常工作

  • 。。。这算黑吗??? at 2015年10月08日

    互联网项目要是先考虑这些,设计完数据库,黄花菜都凉了