diff options
| author | Maksim Pechnikov <parallel588@gmail.com> | 2019-12-05 12:22:19 +0300 | 
|---|---|---|
| committer | Maksim Pechnikov <parallel588@gmail.com> | 2019-12-05 12:22:19 +0300 | 
| commit | 49bb0a130f93476d32d3177d7a989b7a98a063f2 (patch) | |
| tree | 6e64e2bbe2644dd607ec685de5b2bf94c1f9326c /benchmarks | |
| parent | b9041c209787dc279d4dc5194d65dff73684cdb9 (diff) | |
| parent | 228bf4d214abe3bb62c52128d3bc145e396b174d (diff) | |
| download | pleroma-49bb0a130f93476d32d3177d7a989b7a98a063f2.tar.gz pleroma-49bb0a130f93476d32d3177d7a989b7a98a063f2.zip | |
Merge branch 'develop' into issue/1276
Diffstat (limited to 'benchmarks')
| -rw-r--r-- | benchmarks/load_testing/fetcher.ex | 31 | ||||
| -rw-r--r-- | benchmarks/load_testing/generator.ex | 19 | ||||
| -rw-r--r-- | benchmarks/mix/tasks/pleroma/load_testing.ex | 4 | 
3 files changed, 52 insertions, 2 deletions
| diff --git a/benchmarks/load_testing/fetcher.ex b/benchmarks/load_testing/fetcher.ex index cdc073b2e..a45a71d4a 100644 --- a/benchmarks/load_testing/fetcher.ex +++ b/benchmarks/load_testing/fetcher.ex @@ -95,7 +95,36 @@ defmodule Pleroma.LoadTesting.Fetcher do            for: user,            as: :activity          }) -      end +      end, +      "Rendering favorites timeline" => fn -> +        conn = Phoenix.ConnTest.build_conn(:get, "http://localhost:4001/api/v1/favourites", nil) +        Pleroma.Web.MastodonAPI.StatusController.favourites( +          %Plug.Conn{conn | +                     assigns: %{user: user}, +                     query_params:  %{"limit" => "0"}, +                     body_params: %{}, +                     cookies: %{}, +                     params: %{}, +                     path_params: %{}, +                     private: %{ +                       Pleroma.Web.Router => {[], %{}}, +                       phoenix_router: Pleroma.Web.Router, +                       phoenix_action: :favourites, +                       phoenix_controller: Pleroma.Web.MastodonAPI.StatusController, +                       phoenix_endpoint: Pleroma.Web.Endpoint, +                       phoenix_format: "json", +                       phoenix_layout: {Pleroma.Web.LayoutView, "app.html"}, +                       phoenix_recycled: true, + +                       phoenix_view: Pleroma.Web.MastodonAPI.StatusView, +                       plug_session: %{"user_id" => user.id}, +                       plug_session_fetch: :done, +                       plug_session_info: :write, +                       plug_skip_csrf_protection: true +                     } +          }, +          %{}) +      end,      })    end diff --git a/benchmarks/load_testing/generator.ex b/benchmarks/load_testing/generator.ex index b4432bdb7..a957e0ffb 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) @@ -31,7 +49,6 @@ defmodule Pleroma.LoadTesting.Generator do        password_hash:          "$pbkdf2-sha512$160000$bU.OSFI7H/yqWb5DPEqyjw$uKp/2rmXw12QqnRRTqTtuk2DTwZfF8VR4MYW2xMeIlqPR/UX1nT1CEKVUx2CowFMZ5JON8aDvURrZpJjSgqXrg",        bio: "Tester Number #{i}", -      info: %{},        local: remote      } diff --git a/benchmarks/mix/tasks/pleroma/load_testing.ex b/benchmarks/mix/tasks/pleroma/load_testing.ex index 4fa3eec49..0a751adac 100644 --- a/benchmarks/mix/tasks/pleroma/load_testing.ex +++ b/benchmarks/mix/tasks/pleroma/load_testing.ex @@ -100,6 +100,10 @@ defmodule Mix.Tasks.Pleroma.LoadTesting do      generate_remote_activities(user, remote_users) +    generate_like_activities( +      user, Pleroma.Repo.all(Pleroma.Activity.Queries.by_type("Create")) +    ) +      generate_dms(user, users, opts)      {:ok, activity} = generate_long_thread(user, users, opts) | 
