mirror of
https://akkoma.dev/AkkomaGang/akkoma.git
synced 2024-12-22 01:08:44 +00:00
benchmarks/ added favourites timeline
This commit is contained in:
parent
bf89e0bf38
commit
1fcd579b6d
|
@ -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
|
||||
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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)
|
||||
|
|
Loading…
Reference in a new issue