diff options
| author | Mark Felder <feld@FreeBSD.org> | 2020-07-10 11:34:53 -0500 | 
|---|---|---|
| committer | Mark Felder <feld@FreeBSD.org> | 2020-07-10 11:34:53 -0500 | 
| commit | 3c0c1fd2efa981f18091782434c1f0ac77462b8e (patch) | |
| tree | 7776233f9248d4e1caee6ad859af3a524347d926 /benchmarks | |
| parent | d7a37fddd1fc5169ae8c714d0baf8e5372a5f1d5 (diff) | |
| parent | ce9514000db1e08a69b8874f21e66261b9261d86 (diff) | |
| download | pleroma-3c0c1fd2efa981f18091782434c1f0ac77462b8e.tar.gz pleroma-3c0c1fd2efa981f18091782434c1f0ac77462b8e.zip | |
Merge branch 'develop' into issue/1790-updated-oban
Diffstat (limited to 'benchmarks')
| -rw-r--r-- | benchmarks/load_testing/activities.ex | 10 | ||||
| -rw-r--r-- | benchmarks/load_testing/fetcher.ex | 34 | 
2 files changed, 42 insertions, 2 deletions
| diff --git a/benchmarks/load_testing/activities.ex b/benchmarks/load_testing/activities.ex index 074ded457..f5c7bfce8 100644 --- a/benchmarks/load_testing/activities.ex +++ b/benchmarks/load_testing/activities.ex @@ -24,6 +24,7 @@ defmodule Pleroma.LoadTesting.Activities do    @visibility ~w(public private direct unlisted)    @types [      :simple, +    :simple_filtered,      :emoji,      :mentions,      :hell_thread, @@ -242,6 +243,15 @@ defmodule Pleroma.LoadTesting.Activities do      insert_local_activity(visibility, group, users, "Simple status")    end +  defp insert_activity(:simple_filtered, visibility, group, users, _opts) +       when group in @remote_groups do +    insert_remote_activity(visibility, group, users, "Remote status which must be filtered") +  end + +  defp insert_activity(:simple_filtered, visibility, group, users, _opts) do +    insert_local_activity(visibility, group, users, "Simple status which must be filtered") +  end +    defp insert_activity(:emoji, visibility, group, users, _opts)         when group in @remote_groups do      insert_remote_activity(visibility, group, users, "Remote status with emoji :firefox:") diff --git a/benchmarks/load_testing/fetcher.ex b/benchmarks/load_testing/fetcher.ex index 15fd06c3d..dfbd916be 100644 --- a/benchmarks/load_testing/fetcher.ex +++ b/benchmarks/load_testing/fetcher.ex @@ -32,10 +32,22 @@ defmodule Pleroma.LoadTesting.Fetcher do      )    end +  defp create_filter(user) do +    Pleroma.Filter.create(%Pleroma.Filter{ +      user_id: user.id, +      phrase: "must be filtered", +      hide: true +    }) +  end + +  defp delete_filter(filter), do: Repo.delete(filter) +    defp fetch_timelines(user) do      fetch_home_timeline(user) +    fetch_home_timeline_with_filter(user)      fetch_direct_timeline(user)      fetch_public_timeline(user) +    fetch_public_timeline_with_filter(user)      fetch_public_timeline(user, :with_blocks)      fetch_public_timeline(user, :local)      fetch_public_timeline(user, :tag) @@ -61,7 +73,7 @@ defmodule Pleroma.LoadTesting.Fetcher do      }    end -  defp fetch_home_timeline(user) do +  defp fetch_home_timeline(user, title_end \\ "") do      opts = opts_for_home_timeline(user)      recipients = [user.ap_id | User.following(user)] @@ -84,9 +96,11 @@ defmodule Pleroma.LoadTesting.Fetcher do        |> Enum.reverse()        |> List.last() +    title = "home timeline " <> title_end +      Benchee.run(        %{ -        "home timeline" => fn opts -> ActivityPub.fetch_activities(recipients, opts) end +        title => fn opts -> ActivityPub.fetch_activities(recipients, opts) end        },        inputs: %{          "1 page" => opts, @@ -108,6 +122,14 @@ defmodule Pleroma.LoadTesting.Fetcher do      )    end +  defp fetch_home_timeline_with_filter(user) do +    {:ok, filter} = create_filter(user) + +    fetch_home_timeline(user, "with filters") + +    delete_filter(filter) +  end +    defp opts_for_direct_timeline(user) do      %{        visibility: "direct", @@ -210,6 +232,14 @@ defmodule Pleroma.LoadTesting.Fetcher do      fetch_public_timeline(opts, "public timeline")    end +  defp fetch_public_timeline_with_filter(user) do +    {:ok, filter} = create_filter(user) +    opts = opts_for_public_timeline(user) + +    fetch_public_timeline(opts, "public timeline with filters") +    delete_filter(filter) +  end +    defp fetch_public_timeline(user, :local) do      opts = opts_for_public_timeline(user, :local) | 
