Bladeren bron

adding benchmarks in new format

chores/our-libs-hex-releases
Alexander Strizhakov 4 jaren geleden
bovenliggende
commit
da509487b2
Geen bekende sleutel gevonden voor deze handtekening in de database GPG sleutel-ID: 22896A53AEF1381
2 gewijzigde bestanden met toevoegingen van 42 en 2 verwijderingen
  1. +10
    -0
      benchmarks/load_testing/activities.ex
  2. +32
    -2
      benchmarks/load_testing/fetcher.ex

+ 10
- 0
benchmarks/load_testing/activities.ex Bestand weergeven

@@ -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:")


+ 32
- 2
benchmarks/load_testing/fetcher.ex Bestand weergeven

@@ -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)



Laden…
Annuleren
Opslaan