在多線程環境中,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