fetch_notifications(user)
fetch_favourites(user)
fetch_long_thread(user)
+ fetch_timelines_with_reply_filtering(user)
end
defp render_views(user) do
favourites = ActivityPub.fetch_favourites(user)
- output_relationships =
- !!Pleroma.Config.get([:extensions, :output_relationships_in_statuses_by_default])
-
Benchee.run(
%{
"Rendering home timeline" => fn ->
StatusView.render("index.json", %{
activities: home_activities,
for: user,
- as: :activity,
- skip_relationships: !output_relationships
+ as: :activity
})
end,
"Rendering direct timeline" => fn ->
StatusView.render("index.json", %{
activities: direct_activities,
for: user,
- as: :activity,
- skip_relationships: !output_relationships
+ as: :activity
})
end,
"Rendering public timeline" => fn ->
StatusView.render("index.json", %{
activities: public_activities,
for: user,
- as: :activity,
- skip_relationships: !output_relationships
+ as: :activity
})
end,
"Rendering tag timeline" => fn ->
StatusView.render("index.json", %{
activities: tag_activities,
for: user,
- as: :activity,
- skip_relationships: !output_relationships
+ as: :activity
})
end,
"Rendering notifications" => fn ->
Pleroma.Web.MastodonAPI.NotificationView.render("index.json", %{
notifications: notifications,
- for: user,
- skip_relationships: !output_relationships
+ for: user
})
end,
"Rendering favourites timeline" => fn ->
StatusView.render("index.json", %{
activities: favourites,
for: user,
- as: :activity,
- skip_relationships: !output_relationships
+ as: :activity
})
end
},
)
end
- def query_replies(user) do
- public_params = %{
- "type" => ["Create", "Announce"],
- "local_only" => false,
- "blocking_user" => user,
- "muting_user" => user,
- "count" => 20
- }
+ defp fetch_timelines_with_reply_filtering(user) do
+ public_params = opts_for_public_timeline(user)
- Benchee.run(%{
- "Public timeline without reply filtering" => fn ->
- ActivityPub.fetch_public_activities(public_params)
- end,
- "Public timeline with reply filtering - following" => fn ->
- public_params
- |> Map.put("reply_visibility", "following")
- |> Map.put("user", user)
- |> ActivityPub.fetch_public_activities()
- end,
- "Public timeline with reply filtering - self" => fn ->
- public_params
- |> Map.put("reply_visibility", "self")
- |> Map.put("user", user)
- |> ActivityPub.fetch_public_activities()
- end
- })
-
- private_params = %{
- "type" => ["Create", "Announce"],
- "blocking_user" => user,
- "muting_user" => user,
- "user" => user,
- "count" => 20
- }
+ Benchee.run(
+ %{
+ "Public timeline without reply filtering" => fn ->
+ ActivityPub.fetch_public_activities(public_params)
+ end,
+ "Public timeline with reply filtering - following" => fn ->
+ public_params
+ |> Map.put("reply_visibility", "following")
+ |> Map.put("reply_filtering_user", user)
+ |> ActivityPub.fetch_public_activities()
+ end,
+ "Public timeline with reply filtering - self" => fn ->
+ public_params
+ |> Map.put("reply_visibility", "self")
+ |> Map.put("reply_filtering_user", user)
+ |> ActivityPub.fetch_public_activities()
+ end
+ },
+ formatters: formatters()
+ )
+
+ private_params = opts_for_home_timeline(user)
recipients = [user.ap_id | User.following(user)]
- Benchee.run(%{
- "Home timeline without reply filtering" => fn ->
- ActivityPub.fetch_activities(recipients, private_params)
- end,
- "Home timeline with reply filtering - following" => fn ->
- private_params = Map.put(private_params, "reply_visibility", "following")
-
- ActivityPub.fetch_activities(recipients, private_params)
- end,
- "Home timeline with reply filtering - self" => fn ->
- private_params = Map.put(private_params, "reply_visibility", "self")
- ActivityPub.fetch_activities(recipients, private_params)
- end
- })
+ Benchee.run(
+ %{
+ "Home timeline without reply filtering" => fn ->
+ ActivityPub.fetch_activities(recipients, private_params)
+ end,
+ "Home timeline with reply filtering - following" => fn ->
+ private_params =
+ private_params
+ |> Map.put("reply_filtering_user", user)
+ |> Map.put("reply_visibility", "following")
+
+ ActivityPub.fetch_activities(recipients, private_params)
+ end,
+ "Home timeline with reply filtering - self" => fn ->
+ private_params =
+ private_params
+ |> Map.put("reply_filtering_user", user)
+ |> Map.put("reply_visibility", "self")
+
+ ActivityPub.fetch_activities(recipients, private_params)
+ end
+ },
+ formatters: formatters()
+ )
end
end