Sha256: d8f9aa6379f934e96247ec12d34c7f41da3ddef965fdd187d6b08a7d8e807e50
Contents?: true
Size: 940 Bytes
Versions: 20
Compression:
Stored size: 940 Bytes
Contents
require 'fiber' def mem_usage `ps -o rss #{$$}`.split.last.to_i end def calculate_fiber_memory_cost(count) GC.disable rss0 = mem_usage count.times { Fiber.new { sleep 1 } } rss1 = mem_usage GC.start cost = (rss1 - rss0).to_f / count puts "fiber memory cost: #{cost}KB" end calculate_fiber_memory_cost(10000) def calculate_thread_memory_cost(count) GC.disable rss0 = mem_usage count.times { Thread.new { sleep 1 } } sleep 0.5 rss1 = mem_usage sleep 0.5 GC.start cost = (rss1 - rss0).to_f / count puts "thread memory cost: #{cost}KB" end calculate_thread_memory_cost(500) require 'bundler/setup' require 'polyphony' def calculate_extended_fiber_memory_cost(count) GC.disable rss0 = mem_usage count.times { spin { :foo } } snooze rss1 = mem_usage GC.start cost = (rss1 - rss0).to_f / count puts "extended fiber memory cost: #{cost}KB" end calculate_extended_fiber_memory_cost(10000)
Version data entries
20 entries across 20 versions & 1 rubygems