Reproduction Steps
I recently accidentally spilled water all over my desktop computer, and I am now using a Macbook Air with an M1 processor for roblox development 100% of the time.
My device has 8 GB of memory, but most of this memory is compressed due
to the way these devices work. In addition, the “used memory” is generally saturated at a constant ratio of around 6-7 GB out of the 8 GB of memory on my device no matter what load is put under it because of the memory compression on these devices.
The result is that Roblox Studio has an inflated memory usage, and running a Play Solo test requires Roblox Studio to load into memory the studio place, the server, and the client at the same time within the same program. Roblox thinks that the device is running out of memory, and will struggle with StreamingEnabled, starting to throttle by lowering the resolution of textures as well as streaming only to the StreamingMinRadius rather than the StreamingTargetRadius.
However, running a Server + Client test, which opens separate studio windows, allows each client to function normally.
Even running 2 clients and a server will cause no memory throttling, although there will be frame drops if all of these windows are opened at once.
Expected Behavior
Running a Server + Client test should take up more memory rather than less memory than a Play Solo test. As such, Roblox Studio should not have memory-relating throttling (i.e. lowering the resolution on textures, streaming only to the minimum radius and no further), or if it does throttle, it should do so on the Server + Client test as well at the very least.
Roblox Studio should make an exception for M1 device and raise the cap of memory usage on a single instance of studio; Opening my place, Roblox Studio tends to say it’s taking up 5 GB of memory whether or not I’m in a play solo test. Most of this memory is compressed, and my macbook tends to consistently stay at 6 GB of memory usage because of the memory compression algorithms.
Actual Behavior
Throttling happens on a Play Solo test for M1 devices, but not on a Server + Client test.
Workaround
Using Server + Client tests instead of Play Solo tests is the only way I can avoid this memory throttling. Unfortunately, these tests take longer to start, are heavier on my device’s performance, and take up more memory bandwidth since each client has to download the game’s assets from scratch.
On the one hand, I can test for behavior on mobile devices more easily… on the other hand, it slows down my workflow.
Issue Area: Studio
Issue Type: Performance
Impact: Moderate
Frequency: Constantly
Date First Experienced: 2020-12-02 00:12:00 (-07:00)
Date Last Experienced: 2021-08-30 00:08:00 (-06:00)