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

Version Path
polyphony-0.43.3 examples/performance/mem-usage.rb
polyphony-0.43.2 examples/performance/mem-usage.rb
polyphony-0.43.1 examples/performance/mem-usage.rb
polyphony-0.43 examples/performance/mem-usage.rb
polyphony-0.42 examples/performance/mem-usage.rb
polyphony-0.41 examples/performance/mem-usage.rb
polyphony-0.40 examples/performance/mem-usage.rb
polyphony-0.39 examples/performance/mem-usage.rb
polyphony-0.38 examples/performance/mem-usage.rb
polyphony-0.36 examples/performance/mem-usage.rb
polyphony-0.34 examples/performance/mem-usage.rb
polyphony-0.33 examples/performance/mem-usage.rb
polyphony-0.32 examples/performance/mem-usage.rb
polyphony-0.31 examples/performance/mem-usage.rb
polyphony-0.30 examples/performance/mem-usage.rb
polyphony-0.29 examples/performance/mem-usage.rb
polyphony-0.28 examples/performance/mem-usage.rb
polyphony-0.27 examples/performance/mem-usage.rb
polyphony-0.26 examples/performance/mem-usage.rb
polyphony-0.25 examples/performance/mem-usage.rb