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.
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!
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.
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)
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 (FindFirstChild → FindFirstChild → DisplayName → GetValue → GetChildren) under this frame, I believe I was able to find where exactly in the CoreScripts this issue is occurring.
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.
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.
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.
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
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)
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
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.