在多线程环境中,Ruby/Rails可以测量单个线程的实际执行时间吗?在多线程环境中测量线程的执行时间
我一次创建多达10个线程,目前我正在计算每个线程的运行时间,但由于多个线程正在共享处理器,因此在共享资源时会有差距。所以我的时间将超过实际。
@urls.each do |url|
Thread.new do
time = Time.now
request = http.get(url)
response_time = Time.now - time
end
...
end
您的结果可能取决于您使用的Ruby实现。例如,如果你坚持使用MRI,你将只有绿线,这意味着它们基本上是模拟线程,并不涉及真正的系统线程。这也意味着你不能使用多个处理器。那么你在使用哪个Ruby? – jhchabran
哦,你应该使用Benchmark来衡量你的表现,而不是使用Time.now进行基础算术:) http://www.ruby-doc.org/stdlib-1.9.3/libdoc/benchmark/rdoc/Benchmark.html – jhchabran