one more temp commit
This commit is contained in:
parent
db690bede9
commit
79dde58044
4 changed files with 202 additions and 96 deletions
|
|
@ -4,33 +4,18 @@ defmodule Pleroma.LoadTesting.Fetcher do
|
|||
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.")
|
||||
Benchee.run(%{
|
||||
"By id" => fn -> Repo.get_by(User, id: user.id) end,
|
||||
"By ap_id" => fn -> Repo.get_by(User, ap_id: user.ap_id) end,
|
||||
"By email" => fn -> Repo.get_by(User, email: user.email) end,
|
||||
"By nickname" => fn -> Repo.get_by(User, nickname: user.nickname) end
|
||||
})
|
||||
end
|
||||
|
||||
def query_timelines(user) do
|
||||
IO.puts("\n=================================")
|
||||
|
||||
params = %{
|
||||
home_timeline_params = %{
|
||||
"count" => 20,
|
||||
"with_muted" => true,
|
||||
"type" => ["Create", "Announce"],
|
||||
|
|
@ -39,14 +24,7 @@ defmodule Pleroma.LoadTesting.Fetcher do
|
|||
"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 = %{
|
||||
mastodon_public_timeline_params = %{
|
||||
"count" => 20,
|
||||
"local_only" => true,
|
||||
"only_media" => "false",
|
||||
|
|
@ -56,14 +34,7 @@ defmodule Pleroma.LoadTesting.Fetcher do
|
|||
"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 = %{
|
||||
mastodon_federated_timeline_params = %{
|
||||
"count" => 20,
|
||||
"only_media" => "false",
|
||||
"type" => ["Create", "Announce"],
|
||||
|
|
@ -72,45 +43,76 @@ defmodule Pleroma.LoadTesting.Fetcher do
|
|||
"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.")
|
||||
Benchee.run(%{
|
||||
"User home timeline" => fn ->
|
||||
Pleroma.Web.ActivityPub.ActivityPub.fetch_activities(
|
||||
[user.ap_id | user.following],
|
||||
home_timeline_params
|
||||
)
|
||||
end,
|
||||
"User mastodon public timeline" => fn ->
|
||||
ActivityPub.ActivityPub.fetch_public_activities(mastodon_public_timeline_params)
|
||||
end,
|
||||
"User mastodon federated public timeline" => fn ->
|
||||
ActivityPub.ActivityPub.fetch_public_activities(mastodon_federated_timeline_params)
|
||||
end
|
||||
})
|
||||
end
|
||||
|
||||
def query_notifications(user) do
|
||||
IO.puts("\n=================================")
|
||||
params = %{"count" => "20", "with_muted" => "false"}
|
||||
without_muted_params = %{"count" => "20", "with_muted" => "false"}
|
||||
with_muted_params = %{"count" => "20", "with_muted" => "true"}
|
||||
|
||||
{time, _} =
|
||||
:timer.tc(fn -> Pleroma.Web.MastodonAPI.MastodonAPI.get_notifications(user, params) end)
|
||||
Benchee.run(%{
|
||||
"Notifications without muted" => fn ->
|
||||
Pleroma.Web.MastodonAPI.MastodonAPI.get_notifications(user, without_muted_params)
|
||||
end,
|
||||
"Notifications with muted" => fn ->
|
||||
Pleroma.Web.MastodonAPI.MastodonAPI.get_notifications(user, with_muted_params)
|
||||
end
|
||||
})
|
||||
end
|
||||
|
||||
IO.puts("Query user notifications with out muted: #{to_sec(time)} sec.")
|
||||
def query_dms(user) do
|
||||
IO.puts("\n=================================")
|
||||
|
||||
params = %{"count" => "20", "with_muted" => "true"}
|
||||
params = %{
|
||||
"count" => "20",
|
||||
"with_muted" => "true",
|
||||
"type" => "Create",
|
||||
"blocking_user" => user,
|
||||
"user" => user,
|
||||
visibility: "direct"
|
||||
}
|
||||
|
||||
{time, _} =
|
||||
:timer.tc(fn -> Pleroma.Web.MastodonAPI.MastodonAPI.get_notifications(user, params) end)
|
||||
|
||||
IO.puts("Query user notifications with muted: #{to_sec(time)} sec.")
|
||||
Benchee.run(%{
|
||||
"Direct messages with muted" => fn ->
|
||||
Pleroma.Web.ActivityPub.ActivityPub.fetch_activities_query([user.ap_id], params)
|
||||
|> Pleroma.Pagination.fetch_paginated(params)
|
||||
end,
|
||||
"Direct messages without muted" => fn ->
|
||||
Pleroma.Web.ActivityPub.ActivityPub.fetch_activities_query([user.ap_id], params)
|
||||
|> Pleroma.Pagination.fetch_paginated(Map.put(params, "with_muted", false))
|
||||
end
|
||||
})
|
||||
end
|
||||
|
||||
def query_long_thread(user, activity) do
|
||||
IO.puts("\n=================================")
|
||||
|
||||
{time, replies} =
|
||||
:timer.tc(fn ->
|
||||
Benchee.run(%{
|
||||
"Fetch main post" => fn -> Activity.get_by_id_with_object(activity.id) end,
|
||||
"Fetch context of main post" => fn ->
|
||||
Pleroma.Web.ActivityPub.ActivityPub.fetch_activities_for_context(
|
||||
activity.data["context"],
|
||||
%{
|
||||
"blocking_user" => user,
|
||||
"user" => user
|
||||
"user" => user,
|
||||
"exclude_id" => activity.id
|
||||
}
|
||||
)
|
||||
end)
|
||||
|
||||
IO.puts("Query long thread with #{length(replies)} replies: #{to_sec(time)} sec.")
|
||||
end
|
||||
})
|
||||
end
|
||||
end
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue