Compute Pressure is a relatively new web browser API that is currently in incubation period at the W3C. You can find the specification draft online.
For the current status of Compute Pressure, check its Chrome Platform Status page or the MDN compat table.
What is Compute Pressure
The Compute Pressure API is geared towards providing some rough indication as to the pressure measured on compute elements of the device running the web browser. In layman words, it gives you the ability to know the state of load on the CPU.
The information given isn’t granular in nature, and is given as one of four possible states:
- “nominal” – all is good with the world
- “fair” – the CPU is working but not sweating too much
- “serious” – the device is working hard and it might decide to throttle some of the work done
- “critical” – cooling down the CPU is needed
The information provided isn’t granular on purpose, due to privacy concerns from being able to identify specific devices across browsing sessions.
This API needs to be used continuously as CPU state changes dynamically over time.
What can Compute Pressure be used for
The main objective of the Compute Pressure API is to be used for video conferencing and cloud gaming use cases, which are CPU intensive. The information provided can help in balancing out the power requirements of these services dynamically, relying on information that is a bit more accurate than existing “hacks” that try to estimate the CPU state from hints found in other metrics.
It is likely that the Compute Pressure API will be widely used when employing AI and Generative AI algorithms in the browser, to fine tune their power consumption, tuning their accuracy and performance according to available resources.
That said, there will definitely be a lot more uses for this API.
How to make use of Compute Pressure in WebRTC
You can use the Compute Pressure APIs to decide on lowering the performance requirements of your application, such as reducing bitrate or resolution of video channels.
A special use case is to collect and correlate this data alongside getStats() metrics to troubleshoot WebRTC issues.


