小编Jam*_*rie的帖子

MRI红宝石穿线和性能

关于SO的第一个问题,但我已经潜伏了很长时间,所以如果我违反任何规则或发布垃圾问题,你将不得不原谅我.

我正在努力更好地理解线程,我决定测试MRI,看看它的表现如何.

给定以下代码(和输出),为什么线程操作比非线程变体慢得多?

class Benchmarker
  def self.go
    puts '----------Benchmark Start----------'
    start_t = Time.now
    yield
    end_t = Time.now
    puts "Operation Took: #{end_t - start_t} seconds"
    puts '----------Benchmark End------------'
  end
end

# using mutex
puts 'Benchmark 1 (threaded, mutex):'
Benchmarker.go do
  array = []
  mutex = Mutex.new
  5000.times.map do
    Thread.new do
      mutex.synchronize do
        1000.times do
          array << nil
        end
      end
    end
  end.each(&:join)
  puts array.size
end

# using threads
puts 'Benchmark 2 (threaded, no mutex):'
Benchmarker.go do
  array = []
  5000.times.map do …
Run Code Online (Sandbox Code Playgroud)

ruby multithreading mri

4
推荐指数
1
解决办法
160
查看次数

使用Ruby OpenSSL下载和读取证书

我正在尝试研究如何使用stdlib中的OpenSSL从Web地址/ uri下载证书,然后在警报应用程序中使用它.

目前,我实际上是使用s_client调用openssl可执行文件并解析响应来获取证书但是当我有一个完整的lib来处理这个时,它感觉很傻/笨拙(而且我知道肯定已经这样了).

我花了一些时间试图用Ruby包围我的openssl源代码,但我觉得它被它击败了; 互联网似乎充斥着许多rubyists试图绕过他们的SSL(wince)而不是OpenSSL本身的有用信息,所以我也没有太多运气.

有人能指出我正确的方向吗?也许通过文档或类似的东西能够处理这个特定的任务?如果你有一个更好的例子,但我更愿意尝试自己解决问题.

提前致谢.

ruby ssl openssl

2
推荐指数
1
解决办法
1021
查看次数

标签 统计

ruby ×2

mri ×1

multithreading ×1

openssl ×1

ssl ×1