[Regression] Major performance regression for text rendering

There was a recent (started around last week) performance regression for text rendering.
Microprofiler screenshots:

Specifically, it looks like TextLabel.TextFits is significantly slower than before whatever flag was flipped (6ms to fit a single text? that’s an eternity!). There are a few other textlabel methods that are also noticeably slower.

This method is run very often in the default roblox ingame chat script, so this is likely a major performance hit for any game using it (Keep in mind you only have about 16ms per frame total!).

How to repro:
In robeats (RoBeats! 🎧 Music + Rhythm + RPG - Roblox), join a full server (one with 50+ players) from the server list. Start any song, then hold “delete” to leave the match. There will be a significant “freeze” caused by this performance regression.

A bit about robeats internals: I disable all chat rendering while the “rhythm game” portion is active, and do all the “skipped” updates when bringing up the “song end” menu.

8 Likes

This is a known regression with the new UI system backend. There’s a bug where a relayout is being mistakenly triggered every time a TextLabel gets parented, which is what that “UI Layout” step in the microprofiler means. Robeats is now in the blacklist, as well as a few other games experiencing this issue.

If anyone else is affected, I can add your games to the blacklist as well, until I have a fix.

2 Likes