• 贵公司还招人吗?

  • 😀

  • 这待遇福利的确有点过分……😀

  • RSpec 求实际执行时间 at 2015年10月20日

    #3楼 @markgeek 恩 是的 并且将结果(每个方法消耗的时间)打印到日志

  • RSpec 求实际执行时间 at 2015年10月19日

    #1楼 @ltl3884 但是这样得到的不是想要的结果("People can method rans in 0.001s")缺少是那个方法消耗的时间

  • 超赞

  • 线程 join at 2015年06月02日

    #9楼 @MrPasserby 恩 谢啦 知道了 在run之前先确保已经stop了 所以

    sleep 0.1
    ts.each &:run
    ts.each &:join
    

    THX

  • 线程 join at 2015年06月02日

    以下都是执行10次的结果 ruby a_test.rb 10

    #encoding: utf-8
    require '*******'  #====drb client 生成的gem
    require 'benchmark'
    real_time = Benchmark.realtime do
      a = ARGV.first
      ts = []
      t = []
      a.to_i.times do |i|
        ts << Thread.new(i) do
          ti = Benchmark.realtime do
            sleep(1)
          end
          t << ti
        end.join
      end
      p t
      sum = t.inject{|s,e| s=s+e}
      p sum/t.size
    end
    p real_time
    

    运行结果为

    [1.000672781, 1.000814113, 1.000668882, 1.000586453, 1.000551037, 1.000492891, 1.000694687, 1.000767984, 1.000800398, 1.000598385]
    1.0006647611000001
    10.01287766 #==>总共耗时10s
    

    所以加了stop和run操作;but修改之后如:

    #encoding: utf-8
    require '*******'
    require 'benchmark'
    real_time = Benchmark.realtime do
      a = ARGV.first
      ts = []
      t = []
      a.to_i.times do |i|
        ts << Thread.new(i) do
          Thread.stop
          ti = Benchmark.realtime do
            sleep(1)
          end
          t << ti
        end
      end
      ts.each &:run
      ts.each &:join  #有时主线程会一直等待第一个 ts[0]线程的运行 ts[0]没有运行结果所以修改为ts[4..-1].each &:join
      p t
      sum = t.inject{|s,e| s=s+e}
      p sum/t.size
    end
    p real_time
    

    修改ts[4..-1].each &:join之后也会出现等待状态 但是执行成功的几率比较大。结果如下:

    [1.001274903, 1.000687374, 1.000907523, 1.001395518, 1.000877703, 1.001985597, 1.002118701, 1.00204419, 1.002451825] ##基本上size为8或者9
    1.001527037111111
    1.021161041 ##总耗时比较短 所以用了stop操作
    

    我只用于测试一些方法的具体时间(模拟高并发情况下);ts join会出现等待主线程一直等待状态,请大神解惑

  • 线程 join at 2015年06月01日

    #3楼 @MrPasserby 效果就是 主线程等待ts中所有线程执行完毕之后关闭,ts中的线程有的不能执行所以 一直等待

  • 线程 join at 2015年06月01日

    #1楼 @MrPasserby map 和 each 在这应该没区别吧 测试结果大了还是一样