diff options
author | Alexander Strizhakov <alex.strizhakov@gmail.com> | 2020-03-31 16:53:11 +0300 |
---|---|---|
committer | Alexander Strizhakov <alex.strizhakov@gmail.com> | 2020-07-06 09:30:42 +0300 |
commit | da509487b21bbb627e5fdac6815ad9b3e4e4728b (patch) | |
tree | ff1bde6de0da05e62184a5553c74ae2d16149991 /benchmarks/load_testing/fetcher.ex | |
parent | 20c27bef4083330a2415f1c0a04e4cad128b267a (diff) | |
download | pleroma-da509487b21bbb627e5fdac6815ad9b3e4e4728b.tar.gz pleroma-da509487b21bbb627e5fdac6815ad9b3e4e4728b.zip |
adding benchmarks in new format
Diffstat (limited to 'benchmarks/load_testing/fetcher.ex')
-rw-r--r-- | benchmarks/load_testing/fetcher.ex | 34 |
1 files changed, 32 insertions, 2 deletions
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) |