Compute Efficiency: Monitor Your Experience Compute Performance and View Real-Time Metrics by Hourly or Daily

Hello creators,

Today, we are making two updates to our real time performance page:

  1. The addition of a new Compute Efficiency chart to let you monitor how efficiently your experience’s servers are utilizing CPU on the Server.
  2. Splitting your real-time metrics into server and client, and adding a dropdown to let you view them by minute, hour, and day.

To check this out, navigate to Creator Hub, click on Monitoring in the left nav, and then Performance.

Monitor your experience’s compute efficiency

What is Compute Efficiency?

On the server tab, you’ll see a new chart called Compute Efficiency which shows you how your experience is using server compute.

  • The white line, the Efficiency Baseline is provided as a reference point. It represents the average compute performance of peers (all experiences on Roblox).

  • The blue line is your experience’s Actual Efficiency, which is an average across all servers for your experience. The higher your efficiency is, the better. This gives you the capability to gauge how your experience compute compares, and importantly track performance trends over time and across versions.

Compute efficiency measures the server-side compute resources consumed by your game servers for each hour of user playtime, relative to a baseline. A higher compute efficiency means fewer compute resources are being used to support each hour of user playtime. Factors influencing compute efficiency include:

  • How many players occupy each game server. If your game servers have higher player counts then fewer compute resources are required to support each hour of playtime

  • Game server performance: When comparing experiences with an equal number of players an experience that consumes 6ms of CPU time per frame on the server will have a higher compute efficiency than an identical experience that consumes 30ms of CPU time per frame.

    • You can use the Server Microprofiler to diagnose how your servers are consuming CPU time

In the example below we can see that the experience is doing well, above baseline, and improving 4.4% compared to the previous period.

Why is this important?

Your experience’s performance and responsiveness is a critical piece of player engagement and satisfaction. Expensive engine computation, including scripts, physics, and networking, can lead to deteriorated performance on the server.

A higher compute efficiency means fewer compute resources are expended to deliver each hour of playtime for your game. By consistently aiming to exceed the Efficiency Baseline you’re ensuring that your experiences run optimally and provide the best user experience. This is crucial to attract users and maintain long-term user satisfaction.

Additionally, less energy needs to be expended to run the servers for your experience. By improving your compute efficiency you are also minimizing the environmental footprint of your experience.

How to use the chart?

  1. Regular review: Make it a habit to check efficiency periodically and when you release new versions to give you a clear picture of where you stand and how you’ve progressed.

  2. Benchmarking: The Efficiency Baseline is your benchmark, experiences which are consistently meeting or exceeding this means you’re on the right track.

  3. Optimization: We’ve put together documentation on performance optimization to help get started and we’ll be providing you with deeper analytics in the months to come!

View Real-Time Metrics by Minute, Hour, or Day

We have also added a new Time Interval dropdown to the Performance page that has the following options:

  • Days
  • Hours
  • Half Hours
  • Minutes

This makes it easy for you to see charts like CCU and average session time by your preferred interval.

Please let us know if you have any questions or feedback about today’s launch. For more information, please visit the performance analytics documentation.

Thank you.

173 Likes

This topic was automatically opened after 10 minutes.

Great, not only will I see how poorly optimized my game is while looking at the developer console, but also in the experience dashboard.

In all seriousness, will definitely be using this graph frequently in the future to try and fix performance issues that I’m highly oblivious to, which my players report to me via social media. Thank you to whichever Roblox employees developed this feature. Hoping to see a graph that shows which scripts are causing performance issues, kind of like the ScriptProfiler.

47 Likes

Can we expect to see a Time Interval of a lower resolution at some point across all of the analytics pages? This is one feature that existed with the old Developer Stats page that was nice to have - you could breakdown Visits/Revenue by Hourly, Daily, or Monthly. If I’m looking at the revenue performance of my experience over the last year, I might wish to view the data by each calendar month.

Currently, you have to add it up manually or (in most cases) export the data externally. It’d be nice to have this simple functionality back.

15 Likes

This is really cool, loving all of the new performance stats we’re getting! Can we expect to also get this graph for client in the future?

Also, as mentioned above, more granularity (seeing avg. per-script usage) on the dashboard, similar to the in-game dev console, would be amazing too.

16 Likes

Speaking of the MicroProfiler, can we get a button for it on the View tab and a shortcut as well in roblox studio/client? I didnt even know I could see the MicroProfiler on the server side because to see you have to run a client instance, press esc and enable it, but sometimes I am testing with the server only which forces me to close the session, run a client, enable microprofiler, close the session and start a new server only one.

CTRL + F6 is the shortcut to open the microprofiler either on server or client apparently!

13 Likes

Hopefully this means we’re going to be getting more options when it comes to managing server resources (?) Perhaps even the ability to natively “reset” a server at any given time if it’s resource usage gets too high? Overall still a nice update and I’m sure this’ll help out in trying to figure out why servers/ people’re lagging in game.

11 Likes

Perhaps in the future, compute efficiency can provide a very small boost in the algorithm as we are costing Roblox less money? This could also incentivize developers to make better use of server computing.

19 Likes

Can we get increased server memory or better tools for server memory usage & optimization? I know of many creators that have great ambitions on the platform, but are limited to the server memory limit.

Here is a post asking for the same thing with lots of valid reasoning and with many supporters and likes of this idea, it’s very wanted:

Here is my AMA post on this with (I think) the most likes as a question (60 likes as of posting):

Furthermore, it doesn’t help when there is also a server memory leak with deleted models:

If we can’t get increaded server memory, can we have better tools for specifically server memory usage, optimization, and specific points in which causes memory usage such as certain models, objects, etc.?

22 Likes

Since this thread is about performance, I feel like this is a good time to ask what the Script Activity number in Script Performance measures again. Some other things requested were linked above, but we need lower-level memory tools in Studio (such as a nil space explorer, or the ability to monitor Luau’s GC behaviour [or even manually invoke it, cough collectgarbage]).

I feel like a whole plethora of memory tools could be added to Studio that would allow me to see how much memory an Instance (C side, not the lua prototype) is taking up, or the raw memory size of a table/closure in Lua. gcinfo only returns the size of the heap in the entire VM which is too blunt of a number, memory categories in performance stats also measure the whole thread, which is also too blunt.

On the main topic, it would be useful to see this information without needing to sit in a game for multiple hours for sneaky memory leaks and performance issues to actually show themselves.

18 Likes

How to I use the “Server Microprofiler”?

14 Likes

This is a bit greenwashy, the major benefit is that it costs Roblox less to run servers with high efficiency. Will Roblox be using this metric to affect discoverability of games in the future.

20 Likes

Since the obvious end goal is to reduce server costs for roblox, wouldn’t it make more sense to incentivize developers who actively try to optimize the server side of things by passing on part of the cost savings and giving them a greater share of revenue?

Otherwise for the vast majority of experiences the end users won’t really notice much of a difference if the server takes 6ms to compute a frame or 30 ms.

17 Likes

This is maybe personal, but I am not a fan of the Microprofiler. I wish Roblox were to add into this new feature the average script’s performance, physics performance, and other main things.


My compute efficiency is terrible, and I am still trying to get down the root cause of this issue in my game. The Script Activity of my Main Script is on 4% (the only Server Script which initializes modules of the game and handles everything). With the lack of information on Script Activity is really hard to know whether that’s even good or not.


I have noticed a terrible performance in physics after some time in my game as well, I enabled StreamingEnabled thinking it would help with it, and it didn’t improve a single thing except decreasing 100MB on the client. All physics start acting up slow after some period of time.

Now get this, the stuff in my game anchors when players are not within the required radius, this means the animals in my game stop moving and objects that are using HingeConstraint to rotate are also stopped until a player gets nearby.

Despite me taking these measurements, I have no idea still of what’s causing this slow physics issue. As of now, I can tell you that the physics for animals are handled by the server, mainly because I don’t want exploiters moving the animals around or throwing them to the void glitching the game. There is also a delay at the time of detecting whether this animal reached its destination when the player has ownership of it.


That said, please add more areas to look along with this graph to narrow down the features I have to look into. Every time I open the Microprofiler tool, I just see bars and numbers that are hard to interpret for me and also because of the weird wording for some.

14 Likes

This ^, I think in general ROBLOX should be more transparent with developer costs but this is not the thread for that. (Also want to point out that there is a huge difference between a 6 ms frame and a 30 ms frame, 30 ms is a server running at 30 fps which is half of what it should be running at)

Anyways, another W for the analytics team! Are there any plans to allow us to see a more in depth breakdown of performance usage per script?

12 Likes

please do not make the roblox algorithm any worse! thanks !

16 Likes

~60fps heartbeat, 2gb mem usage but 16% compute efficiency, what? :sweat_smile:
This information unlike other metrics is extremely vague and fails to help me diagnose what changes need to be made.

19 Likes

This is an interesting tool, however given that I am the worst optimizer, I doubt that I could even utilize it correctly.

12 Likes

Any plans to incorporate custom resource/event tacking? Similar to GameAnalytics’ resource events?

12 Likes

Will there ever be some kind of penalty/reward system based on how efficient a game is (i.e. how much power the servers need).

inefficient games cost Roblox way more, but Roblox still takes the same revenue cut either way.

This would incentize devs to optimize their games as much as possible.

11 Likes