Add extended benchmark

This commit is contained in:
rinpatch 2019-09-10 23:08:15 +03:00
parent 43f02dfe38
commit 5a76d5d239

View file

@ -27,7 +27,7 @@ defmodule Mix.Tasks.Pleroma.Benchmark do
}) })
end end
def run(["render_timeline", nickname]) do def run(["render_timeline", nickname | _] = args) do
start_pleroma() start_pleroma()
user = Pleroma.User.get_by_nickname(nickname) user = Pleroma.User.get_by_nickname(nickname)
@ -37,17 +37,41 @@ defmodule Mix.Tasks.Pleroma.Benchmark do
|> Map.put("blocking_user", user) |> Map.put("blocking_user", user)
|> Map.put("muting_user", user) |> Map.put("muting_user", user)
|> Map.put("user", user) |> Map.put("user", user)
|> Map.put("limit", 4096)
|> Pleroma.Web.ActivityPub.ActivityPub.fetch_public_activities() |> Pleroma.Web.ActivityPub.ActivityPub.fetch_public_activities()
|> Enum.reverse() |> Enum.reverse()
Benchee.run(%{ inputs = %{
"render_timeline" => fn -> "1 activity" => Enum.take_random(activities, 1),
Pleroma.Web.MastodonAPI.StatusView.render("index.json", %{ "10 activities" => Enum.take_random(activities, 10),
activities: activities, "20 activities" => Enum.take_random(activities, 20),
for: user, "40 activities" => Enum.take_random(activities, 40),
as: :activity "80 activities" => Enum.take_random(activities, 80)
}
inputs =
if Enum.at(args, 2) == "extended" do
Map.merge(inputs, %{
"200 activities" => Enum.take_random(activities, 200),
"500 activities" => Enum.take_random(activities, 500),
"2000 activities" => Enum.take_random(activities, 2000),
"4096 activities" => Enum.take_random(activities, 4096)
}) })
else
inputs
end end
})
Benchee.run(
%{
"Standart rendering" => fn activities ->
Pleroma.Web.MastodonAPI.StatusView.render("index.json", %{
activities: activities,
for: user,
as: :activity
})
end
},
inputs: inputs
)
end end
end end