It is currently July 23rd, 2024, 9:36 am

Optimizing Rainmeter Settings for Handheld PCs?

General topics related to Rainmeter.
User avatar
SkyyDX
Posts: 14
Joined: April 13th, 2019, 2:26 pm

Optimizing Rainmeter Settings for Handheld PCs?

Post by SkyyDX »

Hi, I have a question, I recently got an ROG Ally Handheld PC and would love to use Rainmeter on it for infos like battery-percentage etc. for this I use Catppuccin for Rainmeter: https://www.deviantart.com/modkavartini/art/catppuccin-for-rainmeter-981994338

However I noticed increased power-draw with Rainmeter active. Normally for desktop usage I have set the Ally to 10w, during idle time or web-browsing it goes as low as 5w with the CPU dropping to 2ghz or less. However as soon as I start Rainmeter the power-draw increases to 7-10w and the fans start to spin up audibly and Rainmeter takes up 1-3% CPU clocking the CPU up to 3ghz. Are there any settings or other tweaks I could change to minimize the power-impact of Rainmeter even if it costs some functionality?
User avatar
Yincognito
Rainmeter Sage
Posts: 7769
Joined: February 27th, 2015, 2:38 pm
Location: Terra Yincognita

Re: Optimizing Rainmeter Settings for Handheld PCs?

Post by Yincognito »

SkyyDX wrote: November 14th, 2023, 3:03 pm Hi, I have a question, I recently got an ROG Ally Handheld PC and would love to use Rainmeter on it for infos like battery-percentage etc. for this I use Catppuccin for Rainmeter: https://www.deviantart.com/modkavartini/art/catppuccin-for-rainmeter-981994338

However I noticed increased power-draw with Rainmeter active. Normally for desktop usage I have set the Ally to 10w, during idle time or web-browsing it goes as low as 5w with the CPU dropping to 2ghz or less. However as soon as I start Rainmeter the power-draw increases to 7-10w and the fans start to spin up audibly and Rainmeter takes up 1-3% CPU clocking the CPU up to 3ghz. Are there any settings or other tweaks I could change to minimize the power-impact of Rainmeter even if it costs some functionality?
It's not Rainmeter itself that is increasing your CPU and power usage, it's the skin(s) you're using, Catppuccin (and others you have loaded, if any) in this case. That skin's CPU usage is normally decent, but in some instances, like when loading it, opening its settings skin, using media and / or the visualizer, it goes up. The greatest usage for me was when opening up its settings skin, it's absolutely huge (12% usage on my Ryzen 5, 85 degrees temperature). Using media or the visualizer (both of which can be toggled off from the infamous settings skin) don't take that much and they are actually quite reasonable (around the same usage as my entire suite with all the bells and whistles enabled, at 4% CPU).

Bottom line, if you toggle off the media and the visualizer (less important) and don't open the settings skin too much (more important), the usage / power consumption should be acceptable, if you want to avoid editing the code. For a larger decrease of those, editing the code would be needed, but obviously you cannot bring it down to 0 (unless you unload the skins) since every little effect you use has to comsume something.

Generally speaking, the CPU usage in Rainmeter increases if (these are cummulative factors, meaning they add / factor up to the total):
- you update your skins frequently, as in every couple milliseconds (visualizers and animations must do this to produce their effects)
- you upsize images from their original resolution in your skins
- the meters in your skins are large in terms of screen size and / or the measures in your skins have a high computational complexity or number
- you use multiple skins
- you use dynamic variables in your skins
- you are running multiple other apps in the background
- you are playing videos in your skins
- you are heavily processing huge strings in your skins
- mouse detection like hover and leave has a marginal impact
- there is badly written code in your skins, e.g. one that redraws the skin more than necessary or has CPU intensive loops

EDIT: Added mouse detection to the above list, as mentioned by Jeff below. By itself its impact is negligible, but just like the rest, it's increased when used in conjunction with other actions in the above list (aka the cumulative effect).
Last edited by Yincognito on November 15th, 2023, 4:49 pm, edited 2 times in total.
Profiles: Rainmeter ProfileDeviantArt ProfileSuites: MYiniMeterSkins: Earth
User avatar
Jeff
Posts: 338
Joined: September 3rd, 2018, 11:18 am

Re: Optimizing Rainmeter Settings for Handheld PCs?

Post by Jeff »

If there is to be brought a discussion about skin specific issues, for Catbussin:
  1. The image meter for the shadow for some reason lags Rainmeter (???????????????????????????)
  2. The visualizer is Shape meters instead of Image meters, while not a problem to use one or the other, Shapes are a bit more expensive to draw
  3. The skin searches for info every 16ms (music info, taskbar apps), if you want it to update every 1 second, disable apps and media.
  4. It lunches some apps using RunCommand, this makes the Rainmeter process the parent of those child apps, so there's "artificial" percentage usage added to Rainmeter's work (when the child apps don't interact with Rainmeter at all after getting lunched)
For Rainmeter "issues", you'll notice that hovering over a skin (in and out of its bounding box, or inside it) will increase the CPU to 5%, this is kind of inevitable because... if you do the same on Discord or Chrome, actually every single app that exists, even Windows' Taskbar, you'll notice the same effect, it's just mouse detection at work, so if you noticed the CPU increase when doing that, that's why, it's inevitable and just how (badly) computers are designed to work.

The only thing you can do as a user for less CPU usage is to turn on Hardware Acceleration so the GPU dose the graphics, that's all really.
User avatar
SkyyDX
Posts: 14
Joined: April 13th, 2019, 2:26 pm

Re: Optimizing Rainmeter Settings for Handheld PCs?

Post by SkyyDX »

Thanks for the reply both of you! Life got busy around the time I posted here and I totally forgot that I even made a post here, I'm sorry.
Yincognito wrote: November 14th, 2023, 4:44 pm It's not Rainmeter itself that is increasing your CPU and power usage, it's the skin(s) you're using, Catppuccin (and others you have loaded, if any) in this case. That skin's CPU usage is normally decent, but in some instances, like when loading it, opening its settings skin, using media and / or the visualizer, it goes up. The greatest usage for me was when opening up its settings skin, it's absolutely huge (12% usage on my Ryzen 5, 85 degrees temperature). Using media or the visualizer (both of which can be toggled off from the infamous settings skin) don't take that much and they are actually quite reasonable (around the same usage as my entire suite with all the bells and whistles enabled, at 4% CPU).

Bottom line, if you toggle off the media and the visualizer (less important) and don't open the settings skin too much (more important), the usage / power consumption should be acceptable, if you want to avoid editing the code. For a larger decrease of those, editing the code would be needed, but obviously you cannot bring it down to 0 (unless you unload the skins) since every little effect you use has to comsume something.

Generally speaking, the CPU usage in Rainmeter increases if (these are cummulative factors, meaning they add / factor up to the total):
- you update your skins frequently, as in every couple milliseconds (visualizers and animations must do this to produce their effects)
- you upsize images from their original resolution in your skins
- the meters in your skins are large in terms of screen size and / or the measures in your skins have a high computational complexity or number
- you use multiple skins
- you use dynamic variables in your skins
- you are running multiple other apps in the background
- you are playing videos in your skins
- you are heavily processing huge strings in your skins
- mouse detection like hover and leave has a marginal impact
- there is badly written code in your skins, e.g. one that redraws the skin more than necessary or has CPU intensive loops

EDIT: Added mouse detection to the above list, as mentioned by Jeff below. By itself its impact is negligible, but just like the rest, it's increased when used in conjunction with other actions in the above list (aka the cumulative effect).
Thanks for the detailed write-up, that does explain a lot of things and I'll adjust the skin accordingly. I haven't even used my ROG Ally much in the recent months as life had other plans but I'll eventually get back to it.
Jeff wrote: November 15th, 2023, 2:09 pm If there is to be brought a discussion about skin specific issues, for Catbussin:
  1. The image meter for the shadow for some reason lags Rainmeter (???????????????????????????)
  2. The visualizer is Shape meters instead of Image meters, while not a problem to use one or the other, Shapes are a bit more expensive to draw
  3. The skin searches for info every 16ms (music info, taskbar apps), if you want it to update every 1 second, disable apps and media.
  4. It lunches some apps using RunCommand, this makes the Rainmeter process the parent of those child apps, so there's "artificial" percentage usage added to Rainmeter's work (when the child apps don't interact with Rainmeter at all after getting lunched)
For Rainmeter "issues", you'll notice that hovering over a skin (in and out of its bounding box, or inside it) will increase the CPU to 5%, this is kind of inevitable because... if you do the same on Discord or Chrome, actually every single app that exists, even Windows' Taskbar, you'll notice the same effect, it's just mouse detection at work, so if you noticed the CPU increase when doing that, that's why, it's inevitable and just how (badly) computers are designed to work.

The only thing you can do as a user for less CPU usage is to turn on Hardware Acceleration so the GPU dose the graphics, that's all really.
Thanks, I'll keep these things in mind too, it's interesting to get to know how the "internals" work. And I'll make sure Hardware Acceleration is enabled as well.