aboutsummaryrefslogtreecommitdiff
path: root/lib/mix/tasks/pleroma/benchmark.ex
diff options
context:
space:
mode:
authorrinpatch <rinpatch@sdf.org>2019-08-15 17:41:26 +0300
committerrinpatch <rinpatch@sdf.org>2019-08-15 18:05:50 +0300
commit1ad71592adb47762287aec8c36d0fca565c38362 (patch)
treee82d0156c7069c6c36345a2889a6e94e074c908e /lib/mix/tasks/pleroma/benchmark.ex
parent9fb71ce7f44ec4824f9b7e2acbc89d0d16ad08bf (diff)
downloadpleroma-1ad71592adb47762287aec8c36d0fca565c38362.tar.gz
Parallelize template rendering
Diffstat (limited to 'lib/mix/tasks/pleroma/benchmark.ex')
-rw-r--r--lib/mix/tasks/pleroma/benchmark.ex38
1 files changed, 29 insertions, 9 deletions
diff --git a/lib/mix/tasks/pleroma/benchmark.ex b/lib/mix/tasks/pleroma/benchmark.ex
index a45940bf3..4cc634727 100644
--- a/lib/mix/tasks/pleroma/benchmark.ex
+++ b/lib/mix/tasks/pleroma/benchmark.ex
@@ -37,17 +37,37 @@ defmodule Mix.Tasks.Pleroma.Benchmark do
|> Map.put("blocking_user", user)
|> Map.put("muting_user", user)
|> Map.put("user", user)
+ |> Map.put("limit", 80)
|> Pleroma.Web.ActivityPub.ActivityPub.fetch_public_activities()
|> Enum.reverse()
- Benchee.run(%{
- "render_timeline" => fn ->
- Pleroma.Web.MastodonAPI.StatusView.render("index.json", %{
- activities: activities,
- for: user,
- as: :activity
- })
- end
- })
+ inputs = %{
+ "One activity" => Enum.take_random(activities, 1),
+ "Ten activities" => Enum.take_random(activities, 10),
+ "Twenty activities" => Enum.take_random(activities, 20),
+ "Forty activities" => Enum.take_random(activities, 40),
+ "Eighty activities" => Enum.take_random(activities, 80)
+ }
+
+ Benchee.run(
+ %{
+ "Parallel rendering" => fn activities ->
+ Pleroma.Web.MastodonAPI.StatusView.render("index.json", %{
+ activities: activities,
+ for: user,
+ as: :activity
+ })
+ end,
+ "Standart rendering" => fn activities ->
+ Pleroma.Web.MastodonAPI.StatusView.render("index.json", %{
+ activities: activities,
+ for: user,
+ as: :activity,
+ parallel: false
+ })
+ end
+ },
+ inputs: inputs
+ )
end
end