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
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
|
defmodule Pleroma.LoadTesting.Fetcher do
use Pleroma.LoadTesting.Helper
def fetch_user(user) do
IO.puts("=================================")
{time, _value} = :timer.tc(fn -> Repo.get_by(User, id: user.id) end)
IO.puts("Query user by id: #{to_sec(time)} sec.")
{time, _value} =
:timer.tc(fn ->
Repo.get_by(User, ap_id: user.ap_id)
end)
IO.puts("Query user by ap_id: #{to_sec(time)} sec.")
{time, _value} =
:timer.tc(fn ->
Repo.get_by(User, email: user.email)
end)
IO.puts("Query user by email: #{to_sec(time)} sec.")
{time, _value} = :timer.tc(fn -> Repo.get_by(User, nickname: user.nickname) end)
IO.puts("Query user by nickname: #{to_sec(time)} sec.")
end
def query_timelines(user) do
IO.puts("\n=================================")
params = %{
"count" => 20,
"with_muted" => true,
"type" => ["Create", "Announce"],
"blocking_user" => user,
"muting_user" => user,
"user" => user
}
{time, _} =
:timer.tc(fn ->
ActivityPub.ActivityPub.fetch_activities([user.ap_id | user.following], params)
end)
IO.puts("Query user home timeline: #{to_sec(time)} sec.")
params = %{
"count" => 20,
"local_only" => true,
"only_media" => "false",
"type" => ["Create", "Announce"],
"with_muted" => "true",
"blocking_user" => user,
"muting_user" => user
}
{time, _} =
:timer.tc(fn ->
ActivityPub.ActivityPub.fetch_public_activities(params)
end)
IO.puts("Query user mastodon public timeline: #{to_sec(time)} sec.")
params = %{
"count" => 20,
"only_media" => "false",
"type" => ["Create", "Announce"],
"with_muted" => "true",
"blocking_user" => user,
"muting_user" => user
}
{time, _} =
:timer.tc(fn ->
ActivityPub.ActivityPub.fetch_public_activities(params)
end)
IO.puts("Query user mastodon federated public timeline: #{to_sec(time)} sec.")
end
def query_notifications(user) do
IO.puts("\n=================================")
params = %{"count" => "20", "with_muted" => "false"}
{time, _} =
:timer.tc(fn -> Pleroma.Web.MastodonAPI.MastodonAPI.get_notifications(user, params) end)
IO.puts("Query user notifications with out muted: #{to_sec(time)} sec.")
params = %{"count" => "20", "with_muted" => "true"}
{time, _} =
:timer.tc(fn -> Pleroma.Web.MastodonAPI.MastodonAPI.get_notifications(user, params) end)
IO.puts("Query user notifications with muted: #{to_sec(time)} sec.")
end
def query_long_thread(user, activity) do
IO.puts("\n=================================")
{time, replies} =
:timer.tc(fn ->
Pleroma.Web.ActivityPub.ActivityPub.fetch_activities_for_context(
activity.data["context"],
%{
"blocking_user" => user,
"user" => user
}
)
end)
IO.puts("Query long thread with #{length(replies)} replies: #{to_sec(time)} sec.")
end
end
|