Roblox Studio does not think Apple M1 chip devices have enough memory when running Play Solo tests

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)

13 Likes

I can confirm that the same thing happens on my M1 iMac.

1 Like

Due to how simariy M1 works to A series bionic chips, it allocates all the memory for the active app you are using which is causing this bug.

3 Likes

This is why I use my chad PC with 321 trillion terabytes of RAM.


Not a mac guy but aren’t there any settings to change how RAM is allocated?

5 Likes

It Could Be Rosetta 2 Affecting Performance On Studio.

1 Like

Thanks for the report! We’ve filed a ticket to our internal database and we’ll follow up when we have an update for you.

2 Likes

Nope, not at all. I don’t even know why, it’s strange