diff options
Diffstat (limited to 'benchmarks/load_testing')
| -rw-r--r-- | benchmarks/load_testing/fetcher.ex | 13 | ||||
| -rw-r--r-- | benchmarks/load_testing/generator.ex | 18 | 
2 files changed, 30 insertions, 1 deletions
| diff --git a/benchmarks/load_testing/fetcher.ex b/benchmarks/load_testing/fetcher.ex index cdc073b2e..776105d34 100644 --- a/benchmarks/load_testing/fetcher.ex +++ b/benchmarks/load_testing/fetcher.ex @@ -57,6 +57,9 @@ defmodule Pleroma.LoadTesting.Fetcher do          Pleroma.Web.ActivityPub.ActivityPub.fetch_public_activities(            mastodon_federated_timeline_params          ) +      end, +      "User favourites timeline" => fn -> +        Pleroma.Web.ActivityPub.ActivityPub.fetch_favourites(user)        end      }) @@ -74,6 +77,8 @@ defmodule Pleroma.LoadTesting.Fetcher do          mastodon_federated_timeline_params        ) +    user_favourites = Pleroma.Web.ActivityPub.ActivityPub.fetch_favourites(user) +      Benchee.run(%{        "Rendering home timeline" => fn ->          Pleroma.Web.MastodonAPI.StatusView.render("index.json", %{ @@ -95,7 +100,13 @@ defmodule Pleroma.LoadTesting.Fetcher do            for: user,            as: :activity          }) -      end +      end, +      "Rendering favorites timeline" => fn -> +        Pleroma.Web.MastodonAPI.StatusView.render("index.json", %{ +              activities: user_favourites, +              for: user, +              as: :activity}) +      end,      })    end diff --git a/benchmarks/load_testing/generator.ex b/benchmarks/load_testing/generator.ex index b4432bdb7..f42fd363e 100644 --- a/benchmarks/load_testing/generator.ex +++ b/benchmarks/load_testing/generator.ex @@ -2,6 +2,24 @@ defmodule Pleroma.LoadTesting.Generator do    use Pleroma.LoadTesting.Helper    alias Pleroma.Web.CommonAPI +  def generate_like_activities(user, posts) do +    count_likes = Kernel.trunc(length(posts) / 4) +    IO.puts("Starting generating #{count_likes} like activities...") + +    {time, _} = +      :timer.tc(fn -> +        Task.async_stream( +           Enum.take_random(posts, count_likes), +          fn post -> {:ok, _, _} = CommonAPI.favorite(post.id, user) end, +          max_concurrency: 10, +          timeout: 30_000 +        ) +        |> Stream.run() +      end) + +    IO.puts("Inserting like activities take #{to_sec(time)} sec.\n") +  end +    def generate_users(opts) do      IO.puts("Starting generating #{opts[:users_max]} users...")      {time, _} = :timer.tc(fn -> do_generate_users(opts) end) | 
