10000 Some basic memory usage benchmarks. · socketry/async@b1ff1ed · GitHub
[go: up one dir, main page]

Skip to content

Commit b1ff1ed

Browse files
committed
Some basic memory usage benchmarks.
1 parent b013f4d commit b1ff1ed

File tree

4 files changed

+67
-0
lines changed

4 files changed

+67
-0
lines changed

benchmark/memory.rb

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
#!/usr/bin/env ruby
2+
3+
# require "benchmark/memory"
4+
5+
# Benchmark.memory do |benchmark|
6+
# benchmark.report("Thread.new{}") do
7+
# Thread.new{true}.join
8+
# end
9 10000 +
10+
# benchmark.report("Fiber.new{}") do
11+
# Fiber.new{true}.resume
12+
# end
13+
14+
# benchmark.compare!
15+
# end
16+
17+
require 'memory'
18+
19+
report = Memory.report do
20+
Thread.new{true}.join
21+
Fiber.new{true}.resume
22+
end
23+
24+
report.print

benchmark/memory/fibers.rb

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
#!/usr/bin/env ruby
2+
3+
pid = fork do
4+
fibers = 100.times.map do
5+
Fiber.new{loop{Fiber.yield}}.resume
6+
end
7+
8+
sleep
9+
end
10+
11+
sleep 1
12+
13+
require 'process/metrics'
14+
metrics = Process::Metrics::General.capture(pid: pid)
15+
16+
pp metrics
17+
18+
Process.kill(:TERM, pid)

benchmark/memory/threads.rb

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
#!/usr/bin/env ruby
2+
3+
pid = fork do
4+
threads = 100.times.map do
5+
Thread.new{sleep}
6+
end
7+
8+
threads.each(&:join)
9+
end
10+
11+
sleep 1
12+
13+
require 'process/metrics'
14+
metrics = Process::Metrics::General.capture(pid: pid)
15+
16+
pp metrics
17+
18+
Process.kill(:TERM, pid)

gems.rb

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,3 +16,10 @@
1616
gem "bake-github-pages"
1717
gem "utopia-project"
1818
end
19+
20+
group :benchmark do
21+
gem "benchmark-ips"
22+
gem "benchmark-memory"
23+
gem "memory"
24+
gem "process-metrics"
25+
end

0 commit comments

Comments
 (0)
0