Sha256: 6d24def0be89ff351a1633d88efdf2e4d012874bf743baaa456a92889b0fcfdd

Contents?: true

Size: 639 Bytes

Versions: 3

Compression:

Stored size: 639 Bytes

Contents

require 'fiber'

def mem_usage
  `ps -o rss #{$$}`.strip.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)

require 'bundler/setup'
require 'polyphony'

def calculate_coprocess_memory_cost(count)
  GC.disable
  rss0 = mem_usage
  count.times { spin { :foo } }
  rss1 = mem_usage
  GC.start
  cost = (rss1 - rss0).to_f / count

  puts "coprocess memory cost: #{cost}KB"
end

calculate_coprocess_memory_cost(10000)

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
polyphony-0.23 examples/core/mem-usage.rb
polyphony-0.22 examples/core/mem-usage.rb
polyphony-0.21 examples/core/mem-usage.rb