PlayerListManager running heavy computations causing stutter while moving character and mouse

Since around 1-2 weeks me and a lot of other people have been getting stuttering across different games.
When a player is walking and moving their mouse at the same time, the PlayerListManager script will execute very expensive computations which causes frames to be delayed (as shown in the video) in certain cases (explained below).

The computation cost scales with the amount of teams and with the amount of players as well. After a certain number of players and teams are on a server it will exceed the usual 16.67 ms frame time and cause stuttering. When either stopping the movement of the player or the mouse, it disappears.

Microprofiler Analysis:

Looking at the microprofiler it is easy to tell that the Heartbeat bound part of the PlayerListManager script, which seems to be the new leaderlist, is causing stuttering with up to 30ms per render. (20 players, 23 teams)


This delay happens every rendered frame while moving player and mouse as seen in the picture.

The underlying operations are mainly Lua GCincrementals (in red), LocalizationService:attemptTranslation namecalls (in bright yellow) and indexing of player.TeamColor and team.TeamColor (darker yellow). It’s interesting to note that the game the videos are from (603943201) does not have any localization/translations enabled whatsoever. I have added the profiler dump at the bottom.

It is possible to reproduce this behaviour in studio/live but the stutter likely won’t appear unless there’s more than 20 players and/or teams.

  1. Open a new baseplate and add 10+ different teams
  2. Start a local server with 5+ players
  3. Take control of one player and do the same movements as explained or shown in the video below

On a default Baseplate with 11 teams and 6 players the PlayerListManager runs for more than 3ms which is awfully long.
I play on a 64bit Windows 10 desktop system with an i5-6600K CPU.

microprofile-20200129-204934.html (8.3 MB)

20 Likes

Thanks for the detailed report, I will look into this issue.

7 Likes

As stated by him, this has been going around throughout all of the popular and normal ROBLOX games. “prtty much evry bordr gam evr” has been experiencing it a lot lately and if you were to do a test on that the same results would appear.

If you’d like to check It out I recommend that game because it doesn’t have much parts at all but it still lags due to that PlayerListManager. It was an issue when the leaderboard that was there for a few hours got released, it had a heavy computation causing it to stutter whenever you moved. I believe that it is something to do with the menu, I could be wrong though.

Small edit / addon:

It could be whenever the user loads into the game, it’s dealing with all of the new adding functions compared to the older leaderboard. It has to deal with so much but it can’t handle it. I am not sure if this is the case but through looking into it a bit more I believe it might be.

On a side-note, I was looking around the playerlist and on one of the games people were joining and leaving at a reasonable rate, and it didn’t really look like it could handle that.

1 Like

Any updates? Currently any movement with my camera or character causes Roblox to drop in frames at an alarming rate, despite my CPU/GPU usage being lower than 40%. This is mostly noticeable in games that require client ms like Parkour.

This isn’t the same bug, the PlayerListManager performance problems have been fixed. You will need to post a new bug report with micro profiler dumps: How to post a Bug Report - #13 by Roblox

2 Likes

See above, file a new report for new issues