perf(gateway): re-enable generational GC on hot processes (#2188)

This commit is contained in:
Hampus authored and GitHub committed 2026-08-30 23:23:26 +02:00
1 parent 0be6c9c734
commit 933b13f3fa
4 files changed
+101 -5

No files matched your search

+2 -2
View File
@@ -30,7 +30,7 @@ update_counts(State) -> guild_maintenance:update_counts(State).
-spec init(map()) -> {ok, guild_state(), timeout()}.
init(GuildState) ->
process_flag(trap_exit, true),
erlang:process_flag(fullsweep_after, 0),
erlang:process_flag(fullsweep_after, 10),
State0 = guild_init:init_base_state(GuildState),
State1 = guild_init:init_member_list(State0),
State2 = guild_init:init_counts(State1),
@@ -431,7 +431,7 @@ terminate(Reason, State) ->
-spec code_change(term(), guild_state(), term()) -> {ok, guild_state()}.
code_change(_OldVsn, State, _Extra) ->
erlang:process_flag(fullsweep_after, 0),
erlang:process_flag(fullsweep_after, 10),
erlang:garbage_collect(),
{ok, State}.
@@ -71,7 +71,7 @@ maybe_cast(_BroadcasterPid, _Msg) ->
-spec init([integer() | pid()]) -> {ok, map()}.
init([GuildId, GuildPid]) when is_integer(GuildId), is_pid(GuildPid) ->
erlang:process_flag(fullsweep_after, 0),
erlang:process_flag(fullsweep_after, 10),
_ = erlang:monitor(process, GuildPid),
{ok, #{guild_id => GuildId, guild_pid => GuildPid}}.
+2 -2
View File
@@ -80,7 +80,7 @@ start_link(SessionData) ->
-spec init(map()) -> {ok, session_state()}.
init(SessionData) ->
process_flag(trap_exit, true),
erlang:process_flag(fullsweep_after, 0),
erlang:process_flag(fullsweep_after, 10),
State0 = session_init:build_state(SessionData),
ScheduleStartedAt = gateway_timings:start(),
session_init:schedule_timers(State0),
@@ -318,7 +318,7 @@ terminate(Reason, State) ->
-spec code_change(term(), session_state(), term()) -> {ok, session_state()}.
code_change(_OldVsn, State, _Extra) ->
erlang:process_flag(fullsweep_after, 0),
erlang:process_flag(fullsweep_after, 10),
erlang:garbage_collect(),
{ok, State}.