Revert "Parallelize template rendering"
[akkoma] / lib / mix / tasks / pleroma / benchmark.ex
1 # Pleroma: A lightweight social networking server
2 # Copyright © 2017-2019 Pleroma Authors <https://pleroma.social/>
3 # SPDX-License-Identifier: AGPL-3.0-only
4
5 defmodule Mix.Tasks.Pleroma.Benchmark do
6 import Mix.Pleroma
7 use Mix.Task
8
9 def run(["search"]) do
10 start_pleroma()
11
12 Benchee.run(%{
13 "search" => fn ->
14 Pleroma.Activity.search(nil, "cofe")
15 end
16 })
17 end
18
19 def run(["tag"]) do
20 start_pleroma()
21
22 Benchee.run(%{
23 "tag" => fn ->
24 %{"type" => "Create", "tag" => "cofe"}
25 |> Pleroma.Web.ActivityPub.ActivityPub.fetch_public_activities()
26 end
27 })
28 end
29
30 def run(["render_timeline", nickname]) do
31 start_pleroma()
32 user = Pleroma.User.get_by_nickname(nickname)
33
34 activities =
35 %{}
36 |> Map.put("type", ["Create", "Announce"])
37 |> Map.put("blocking_user", user)
38 |> Map.put("muting_user", user)
39 |> Map.put("user", user)
40 |> Pleroma.Web.ActivityPub.ActivityPub.fetch_public_activities()
41 |> Enum.reverse()
42
43 Benchee.run(%{
44 "render_timeline" => fn ->
45 Pleroma.Web.MastodonAPI.StatusView.render("index.json", %{
46 activities: activities,
47 for: user,
48 as: :activity
49 })
50 end
51 })
52 end
53 end