forked from mongoid/moped
/
cases.rb
79 lines (69 loc) · 1.66 KB
/
cases.rb
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
before do
session[:people].find.remove_all
end
after do
session[:people].find.remove_all
end
# CASES #
profile "Insert 1,000 documents serially (no safe mode)" do
1_000.times do
session[:people].insert({})
end
end
profile "Insert 10,000 documents serially (no safe mode)" do
10_000.times do
session[:people].insert({})
end
end
profile "Insert 10,000 documents serially (safe mode)" do
session.with(safe: true) do
10_000.times do
session[:people].insert({})
end
end
end
profile "Query 1,000 normal documents (100 times)" do
session[:people].insert(1000.times.map do
{ _id: Moped::BSON::ObjectId.new,
name: "John",
created_at: Time.now,
comment: "a"*200 }
end)
100.times do
session[:people].find.each { |doc| }
end
end
profile "Query 1,000 large documents (100 times)" do
session[:people].insert(1000.times.map { { name: "John", data: "a"*10000 }})
100.times do
session[:people].find.each { |doc| }
end
end
profile "Insert and find one (1000x, 1 thread)" do
1000.times do
session[:people].insert(name: "John")
session[:people].find.one
end
end
profile "Insert and find one (1000x, 2 threads)" do
2.times.map do
Thread.new do
thread_session = session.new
1000.times do
thread_session[:people].insert(name: "John")
thread_session[:people].find.one
end
end
end.each &:join
end
profile "Insert and find one (1000x, 5 threads)" do
5.times.map do |i|
Thread.new do
thread_session = session.new
1000.times do
thread_session[:people].insert(name: "John")
thread_session[:people].find.one
end
end
end.each &:join
end