SchedulerHostConfig.default & SettingsHub causing SIGNIFICANT performance issues

SchedulerHostConfig.default (and at times SettingsHub) takes a significant amount of time to process in the Microprofiler. It’s making it very difficult to test or play any game after a period of time.

I don’t have any reproducible steps, as it seems to just start occurring after awhile of playing.
The FPS drops at first are small but gets worse overtime.

update:

Expected behavior

No performance issues from SchedulerHostConfig.default or SettingsHub

A private message is associated with this bug report

21 Likes

Hello There! I hope you’re doing well.
Thank you for taking the time to submit this issue and for reading our message.

To help us move forward, we’d appreciate your support with a few questions:

  • Is this issue still occurring on your device?

  • What is your system information?

  • Could you please include a microprofiler dump? Or a file where we can check this issue?

Also, the link provided in the Private M. is not leading me to the experience.

Don’t worry — we’ve got you covered!
You can find step-by-step instructions on how to generate and send the microprofiler or any file in:
[How to post a Bug Report - Bug Reports - Developer Forum | Roblox]. Following these steps will help us better understand the issue and work on a solution more efficiently.
Thank you again for your cooperation!

1 Like

Hi, thank you for the response.
Letting you know that I’ve replied to the private message.

The issue occurs on me and my friends devices.

I am unable to provide a Microprofiler dump right now; I’ll need to organise a playtest with the testers but when I experience this again I’ll send the Microprofiler dump here.

1 Like

I’m unsure if this is related but Microprofiler is now showing “SettingsHub” as a culprit for the FPS drops. It’s identical to the FPS drops that SchedulerHostConfig.default show.

Also, I’m not sure how I can attach a microprofile dump.

Edit:
For some weird reason, currently whenever someone sends a chat message, opening / closing the settings or me simply hovering and unhovering from chat makes my FPS awfully bad. It just seems to build up over time (and get worse)

Microprofile:

Sorry if I’m bad at explaining lol

5 Likes

Hi,

One of the games I am currently working on is experiencing significant performance issues for certain users caused by SchedulerHostConfig.default & SettingsHub, similar to OP. While I haven’t been able to entirely figure out the cause of them (kinda, read about the console & chat below), players are reporting that it occurs most often after interacting with user interface.

I have identified two major issues that cause SchedulerHostConfig.default to have long frame times: the Developer Console & Chat. I go in-depth below.

I have not been able to identify what causes long SettingsHub frame times but I can confirm it is affecting some of my players.


SettingsHub is changing Text and TextTransparency properties of something? I couldn’t find anything definitive in the SettingsHub.lua CoreScript that this could be.

Developer Console

After extensive testing, another user and I found that opening the Developer Console and navigating to the “Memory” tab triggers a session-lasting SchedulerHostConfig.default stutter as seen below. This stutter occurs every 3 seconds, which is the memory graph/stat update frequency. While I didn’t have time to test other tabs, I do believe the same happens to any tab with constantly updating stats. The only way to stop it is to rejoin.


Based on the namecalls & indexing (FindFirstChildFindFirstChildDisplayNameGetValueGetChildren) under this frame, I believe I was able to find where exactly in the CoreScripts this issue is occurring.

CoreScripts\Modules\DevConsole\Components\Memory\ClientMemoryData.lua

Code Explanation

For simplicity’s sake, “script” or “the script” refers to the CoreScript above.

-- Line 418
-- This function is called and begins the memory stat updating on a 3 second internval.
function ClientMemoryData:start()
	spawn(function()
		self._pollingId = self._pollingId + 1
		local instanced_pollingId = self._pollingId
		self._isRunning = true
		while instanced_pollingId == self._pollingId do
			-- GetMemoryPerformanceStatsItem calls FindFirstChild twice
			local statsItem = GetMemoryPerformanceStatsItem()
			if not statsItem then
				return
			end
			self._lastUpdate = os.time()
			-- This is where the spike happens, see below
			self:recursiveUpdateEntry(self._memoryData, self._memoryDataSorted, statsItem)

			if self._totalMemory ~= statsItem:getValue() then
				self._totalMemory = statsItem:getValue()
				self._totalMemoryUpdated:Fire(self._totalMemory)
			end

			self._treeViewUpdatedSignal:Fire(self._memoryDataSorted)
			-- 3 second interval: CLIENT_POLLING_INTERVAL = 3
			wait(CLIENT_POLLING_INTERVAL)
		end
		self._isRunning = false
	end)
end
-- Line 265
-- This matches the order of namecalls and indexes found in the spike
function ClientMemoryData:recursiveUpdateEntry(entryList, sortedList, statsItem)
	local name = StatsUtils.GetMemoryAnalyzerStatName(statsItem.DisplayName)
	local data = statsItem:GetValue()

	local children = statsItem:GetChildren()
	...

My guess is that, for some reason, the ClientMemoryData:stop() function is not correctly (or at all) called.

If the player has server console access and opens the server “Memory” tab, it seemed like they would receive a similar, additional stutter caused by an incoming packet, which I assume is the server memory information.

I can provide a MicroProfiler Capture in a PM that includes both spikes if needed.
cc @MaxCaulfield_001

Chat Issue

The FPS issue @Floo_d was experiencing with the chat is very much still present. Incoming chat messages spike my frame time from ~4ms to ~9ms; this jump increases the more messages my client receives. The length of the message doesn’t seem to noticeably change frame time.

What we did discover, however, is that quickly opening and closing the Chat window will cause your FPS to drop significantly when your mouse enters or exits the chat window. This drop will get worse the more times you close and open the chat. The more chat messages that have been sent to your client the worse the drops will be. Running ‘/clear’ does not fix the issue.

Do chat messages get reconstructed every time the chat opens without clearing the old ones? Are chat messages stored forever, and the chat tries to render all of them? I looked through the Chat CoreScripts but there’s a lot and I don’t have the time to learn and understand how it works internally.

Below is a YouTube video demonstration.

Below is a spike when I hover over the Chat.

I can provide a MicroProfiler Capture in a PM that shows frame times after hovering over chat if needed.

Both of these issues are occurring on the latest Roblox version (711) and affect both Windows and macOS.
Client CoreScript Version: 80471914653504.6237

My community is very competitive and combat-focused. They expect the games to be as optimized as possible without stutters or lag spikes.

7 Likes

experiencing it too, big framespikes

4 Likes

I believe this is fixed now? idk

unfortunately still seems to be occurring for me.

just tested hovering+unhovering the mouse from chat and there’s still performance problems. :frowning:

5 Likes

oof i guess its not fixed then

2 Likes

Are there any updates regarding this?
It’s very annoying to put up with this and I’m not even sure what I can do about it as a developer.

it’s just not very fun having performance issues from something we have no control over. :frowning_with_open_mouth:

5 Likes

Ok so it’s not just me, was wondering what the extreme lag surrounding the chat was.

Edit: There is also another chat related issue I have noticed when this started happening, if you have a chat channel (eg a staff chat) and somebody types in the chat who is not in your age group, the chat still moves but nothing shows, no lock icon or anything. So it essentially keeps clearing your chat for no reason.

4 Likes

Same issue here, if I play for more than 30 minutes and i trying to use chat window.

4 Likes

This is affecting any game that uses the default chat UI

I hope that developers can help contribute code fixes to certain issues such as this one someday. This one bug alone has been going on for too long and it is a pretty major one in my eyes.

The amount of performance issues caused by the new chat system alone in the past 2-3 years is unacceptable. I don’t mean to come off as complaining but it’s just not fair :frowning:

Developers shouldn’t have to turn to using custom chat systems all just to fight off performance issues caused by the default one (or any default system for that matter)

Workaround:
Any custom chat system that does not show the default chat UI.
I am using OpenTextChatService - Open-Source Implementation of TextChatService as it is identical to Roblox’s chat

6 Likes

Currently experiencing the same issue.

4 Likes

Why has this still not been fixed? It’s been over a month where this issue has been present and it’s making so many games unplayable for longer periods of time which I see as a pretty major issue as players will typically not return to these games that lag them out if they play them for more than 20-30 minutes and there’s pretty much nothing a developer can do about it besides making their own custom chat system (I’m only assuming that is a fix, odds are I’m unfortunately wrong) and that just isn’t feasible for a lot of people, I understand smaller issues taking longer due to lower priority but for an issue like this the wait time is actually ridiculous especially with how widespread the issue is

7 Likes

Bump, not fixed, experiencing the lag still

5 Likes

This is also still happening to me, really needs to get fixed

6 Likes

Needs a fix immediately, has been plaguing our competitive game where FPS is very important, users blame it on us

3 Likes

Still a major issue for my playerbase.
CoreScripts and any updates to them should really be written with the best performance possible in mind and reach minimum performance benchmarks before being rolled out to public.

Every so often performance hiccups caused by CoreScripts pop up. Performance issues with chat have been a reoccuring issue ever since the inception of the new TextChatService.

There’s very little a Roblox developer can do about these making it very frustrating to deal with.

3 Likes

still not fixed maybe because it also happens for me