It is currently March 28th, 2024, 11:54 pm

Strange high CPU Usage

General topics related to Rainmeter.
ashekai
Posts: 1
Joined: December 18th, 2017, 1:01 pm

Strange high CPU Usage

Post by ashekai »

I have the same exact skins I used for Windows 7 and when idling, my cpu would be at about 12%. Now on Windows 10, my CPU sits at 30%. I checked all of my processes and it's Raimeter that is causing the high CPU usage. I don't get why in the world Rainmeter is using twice the power. On my W7 I used an Intel Core i7-3930K @ 3.2ghz. Now I'm using an Intel Core i7-7700 @ 3.6ghz.
User avatar
jsmorley
Developer
Posts: 22628
Joined: April 19th, 2009, 11:02 pm
Location: Fort Hunt, Virginia, USA

Re: Strange high CPU Usage

Post by jsmorley »

I would unload all skins and load them back one at a time until you find the specific skin that is causing the high CPU. There should be no difference at all in Rainmeter in general on your two systems, in fact obviously you are on a much more powerful CPU now, and the percentage used should be quite a bit less, not more.

I would be suspicious of some audio visualization skin, using the AudioLevel plugin. It is possible that this is struggling with the new sound drivers on your new system. No reason to think that based on what you have said, but 30% CPU seems very high for pretty much any Rainmeter setup, unless you are using an AudioLevel skin that has a low Update rate and is fighting with something else about your system.

In any case, if you can isolate the skin or skins that are causing the high usage, we can take a look at them.

30% CPU usage is unacceptable for any application that is running all the time on your computer. That is a crazy amount of CPU. In fact 10% is pretty close to unacceptable. I have like 20 skins running in Rainmeter at all times, and Rainmeter uses a little under 1% of CPU. My system isn't anywhere near as powerful as yours. The point of Rainmeter is to gently run in the background and use very little resources. Anything more than a few percent sounds like a problem to me, and I would do whatever it takes to figure out what it going on.
User avatar
fonpaolo
Moderator
Posts: 1387
Joined: April 11th, 2013, 8:08 pm
Location: Italy

Re: Strange high CPU Usage

Post by fonpaolo »

In my modest experience, there's something about Windows I'll like to understand...
Same skins, different OS versions:
- with Win XP 32 bit, both resources and CPU usage are very low.
- with Win 7 Pro 64 bit, memory usage almost doubled, CPU usage varying from 1% to 3-4% (it's strange, but depends on how explorer is loaded... sometimes it uses almost no CPU, sometimes it goes crazy...)
- with Win 10 Pro 64 bit, a little less resources used, a little more CPU, minimum 2%.

So, what? :confused:
User avatar
jsmorley
Developer
Posts: 22628
Joined: April 19th, 2009, 11:02 pm
Location: Fort Hunt, Virginia, USA

Re: Strange high CPU Usage

Post by jsmorley »

fonpaolo wrote:In my modest experience, there's something about Windows I'll like to understand...
Same skins, different OS versions:
- with Win XP 32 bit, both resources and CPU usage are very low.
- with Win 7 Pro 64 bit, memory usage almost doubled, CPU usage varying from 1% to 3-4% (it's strange, but depends on how explorer is loaded... sometimes it uses almost no CPU, sometimes it goes crazy...)
- with Win 10 Pro 64 bit, a little less resources used, a little more CPU, minimum 2%.

So, what? :confused:
These computers are not here to stay...
User avatar
jsmorley
Developer
Posts: 22628
Joined: April 19th, 2009, 11:02 pm
Location: Fort Hunt, Virginia, USA

Re: Strange high CPU Usage

Post by jsmorley »

On the subject of the AudioLevel plugin, one thing I would do for sure (to be honest I don't use it at all) is to be careful not to have it beating on your system when it doesn't need to. In the nature of it, you have to set a low Update rate on your skins, so it is "responsive" to the audio going to your output device, so it can work really hard.

The trick is to only have it doing the work when needed. If you think about it, these visualization skins are meant to be used when you are playing music. Presumably you don't want it reacting to every click and beep that Windows makes, or videos that you are watching on YouTube, or a movie you are watching, or a game you are playing.

You want it running when your music audio player is running. Right?

So something like this:
SoundLevelSpectrum_1.0.rmskin

Code: Select all

[Rainmeter]
Update=20
AccurateText=1

[Metadata]
Name=SoundLevelSpectrum
Author=JSMorley
Version=Sep 14, 2014
License=Creative Commons Attribution-Non-Commercial-Share Alike 3.0
Information=Example skin for the AudioLevel Plugin using FFT and Bands to create a spectrum analysis.

[Variables]
BarBack=47,47,47,1

[IsWinampRunning]
Measure=Plugin
Plugin=Process
ProcessName=winamp.exe
IfCondition=IsWinampRunning = 1
IfTrueAction=[!EnableMeasureGroup Audio]
IfFalseAction=[!DisableMeasureGroup Audio]
UpdateDivider=50

[MeasureAudio]
Measure=Plugin
Plugin=AudioLevel
Group=Audio
Disabled=1
Port=Output
FFTSize=2048
FFTAttack=15
FFTDecay=400
Bands=20

[MeasureBand0]
Measure=Plugin
Plugin=AudioLevel
Group=Audio
Disabled=1
Parent=MeasureAudio
Type=Band
BandIdx=0

[MeasureBand1]
Measure=Plugin
Plugin=AudioLevel
Group=Audio
Disabled=1
Parent=MeasureAudio
Type=Band
BandIdx=1

[MeasureBand2]
Measure=Plugin
Plugin=AudioLevel
Group=Audio
Disabled=1
Parent=MeasureAudio
Type=Band
BandIdx=2

[MeasureBand3]
Measure=Plugin
Plugin=AudioLevel
Group=Audio
Disabled=1
Parent=MeasureAudio
Type=Band
BandIdx=3

[MeasureBand4]
Measure=Plugin
Plugin=AudioLevel
Group=Audio
Disabled=1
Parent=MeasureAudio
Type=Band
BandIdx=4

[MeasureBand5]
Measure=Plugin
Plugin=AudioLevel
Group=Audio
Disabled=1
Parent=MeasureAudio
Type=Band
BandIdx=5

[MeasureBand6]
Measure=Plugin
Plugin=AudioLevel
Group=Audio
Disabled=1
Parent=MeasureAudio
Type=Band
BandIdx=6

[MeasureBand7]
Measure=Plugin
Plugin=AudioLevel
Group=Audio
Disabled=1
Parent=MeasureAudio
Type=Band
BandIdx=7

[MeasureBand8]
Measure=Plugin
Plugin=AudioLevel
Group=Audio
Disabled=1
Parent=MeasureAudio
Type=Band
BandIdx=8

[MeasureBand9]
Measure=Plugin
Plugin=AudioLevel
Group=Audio
Disabled=1
Parent=MeasureAudio
Type=Band
BandIdx=9

[MeasureBand10]
Measure=Plugin
Plugin=AudioLevel
Group=Audio
Disabled=1
Parent=MeasureAudio
Type=Band
BandIdx=10

[MeasureBand11]
Measure=Plugin
Plugin=AudioLevel
Group=Audio
Disabled=1
Parent=MeasureAudio
Type=Band
BandIdx=11

[MeasureBand12]
Measure=Plugin
Plugin=AudioLevel
Group=Audio
Disabled=1
Parent=MeasureAudio
Type=Band
BandIdx=12

[MeasureBand13]
Measure=Plugin
Plugin=AudioLevel
Group=Audio
Disabled=1
Parent=MeasureAudio
Type=Band
BandIdx=13

[MeasureBand14]
Measure=Plugin
Plugin=AudioLevel
Group=Audio
Disabled=1
Parent=MeasureAudio
Type=Band
BandIdx=14

[MeasureBand15]
Measure=Plugin
Plugin=AudioLevel
Group=Audio
Disabled=1
Parent=MeasureAudio
Type=Band
BandIdx=15

[MeasureBand16]
Measure=Plugin
Plugin=AudioLevel
Group=Audio
Disabled=1
Parent=MeasureAudio
Type=Band
BandIdx=16

[MeasureBand17]
Measure=Plugin
Plugin=AudioLevel
Group=Audio
Disabled=1
Parent=MeasureAudio
Type=Band
BandIdx=17

[MeasureBand18]
Measure=Plugin
Plugin=AudioLevel
Group=Audio
Disabled=1
Parent=MeasureAudio
Type=Band
BandIdx=18

[MeasureBand19]
Measure=Plugin
Plugin=AudioLevel
Group=Audio
Disabled=1
Parent=MeasureAudio
Type=Band
BandIdx=19

[MeterBand0]
Meter=Bar
MeasureName=MeasureBand0
X=5
Y=5
W=10
H=100
BarImage=#@#Images\SpecBar0.jpg
SolidColor=#BarBack#
BarOrientation=Vertical

[MeterBand1]
Meter=Bar
MeasureName=MeasureBand1
X=2R
Y=0r
W=10
H=100
BarImage=#@#Images\SpecBar1.jpg
SolidColor=#BarBack#
BarOrientation=Vertical

[MeterBand2]
Meter=Bar
MeasureName=MeasureBand2
X=2R
Y=0r
W=10
H=100
BarImage=#@#Images\SpecBar2.jpg
SolidColor=#BarBack#
BarOrientation=Vertical

[MeterBand3]
Meter=Bar
MeasureName=MeasureBand3
X=2R
Y=0r
W=10
H=100
BarImage=#@#Images\SpecBar3.jpg
SolidColor=#BarBack#
BarOrientation=Vertical

[MeterBand4]
Meter=Bar
MeasureName=MeasureBand4
X=2R
Y=0r
W=10
H=100
BarImage=#@#Images\SpecBar4.jpg
SolidColor=#BarBack#
BarOrientation=Vertical

[MeterBand5]
Meter=Bar
MeasureName=MeasureBand5
X=2R
Y=0r
W=10
H=100
BarImage=#@#Images\SpecBar5.jpg
SolidColor=#BarBack#
BarOrientation=Vertical

[MeterBand6]
Meter=Bar
MeasureName=MeasureBand6
X=2R
Y=0r
W=10
H=100
BarImage=#@#Images\SpecBar6.jpg
SolidColor=#BarBack#
BarOrientation=Vertical

[MeterBand7]
Meter=Bar
MeasureName=MeasureBand7
X=2R
Y=0r
W=10
H=100
BarImage=#@#Images\SpecBar7.jpg
SolidColor=#BarBack#
BarOrientation=Vertical

[MeterBand8]
Meter=Bar
MeasureName=MeasureBand8
X=2R
Y=0r
W=10
H=100
BarImage=#@#Images\SpecBar8.jpg
SolidColor=#BarBack#
BarOrientation=Vertical

[MeterBand9]
Meter=Bar
MeasureName=MeasureBand9
X=2R
Y=0r
W=10
H=100
BarImage=#@#Images\SpecBar9.jpg
SolidColor=#BarBack#
BarOrientation=Vertical

[MeterBand10]
Meter=Bar
MeasureName=MeasureBand10
X=2R
Y=0r
W=10
H=100
BarImage=#@#Images\SpecBar10.jpg
SolidColor=#BarBack#
BarOrientation=Vertical

[MeterBand11]
Meter=Bar
MeasureName=MeasureBand11
X=2R
Y=0r
W=10
H=100
BarImage=#@#Images\SpecBar11.jpg
SolidColor=#BarBack#
BarOrientation=Vertical

[MeterBand12]
Meter=Bar
MeasureName=MeasureBand12
X=2R
Y=0r
W=10
H=100
BarImage=#@#Images\SpecBar12.jpg
SolidColor=#BarBack#
BarOrientation=Vertical

[MeterBand13]
Meter=Bar
MeasureName=MeasureBand13
X=2R
Y=0r
W=10
H=100
BarImage=#@#Images\SpecBar13.jpg
SolidColor=#BarBack#
BarOrientation=Vertical

[MeterBand14]
Meter=Bar
MeasureName=MeasureBand14
X=2R
Y=0r
W=10
H=100
BarImage=#@#Images\SpecBar14.jpg
SolidColor=#BarBack#
BarOrientation=Vertical

[MeterBand15]
Meter=Bar
MeasureName=MeasureBand15
X=2R
Y=0r
W=10
H=100
BarImage=#@#Images\SpecBar15.jpg
SolidColor=#BarBack#
BarOrientation=Vertical

[MeterBand16]
Meter=Bar
MeasureName=MeasureBand16
X=2R
Y=0r
W=10
H=100
BarImage=#@#Images\SpecBar16.jpg
SolidColor=#BarBack#
BarOrientation=Vertical

[MeterBand17]
Meter=Bar
MeasureName=MeasureBand17
X=2R
Y=0r
W=10
H=100
BarImage=#@#Images\SpecBar17.jpg
SolidColor=#BarBack#
BarOrientation=Vertical

[MeterBand18]
Meter=Bar
MeasureName=MeasureBand18
X=2R
Y=0r
W=10
H=100
BarImage=#@#Images\SpecBar18.jpg
SolidColor=#BarBack#
BarOrientation=Vertical

[MeterBand19]
Meter=Bar
MeasureName=MeasureBand19
X=2R
Y=0r
W=10
H=100
BarImage=#@#Images\SpecBar19.jpg
SolidColor=#BarBack#
BarOrientation=Vertical

; Flipped second version of bars

[MeterBand0b]
Meter=Bar
MeasureName=MeasureBand0
X=5
Y=107
W=10
H=100
BarImage=#@#Images\SpecBar0.jpg
SolidColor=#BarBack#
GreyScale=1
ImageAlpha=75
BarOrientation=Vertical
Flip=1

[MeterBand1b]
Meter=Bar
MeasureName=MeasureBand1
X=2R
Y=0r
W=10
H=100
BarImage=#@#Images\SpecBar1.jpg
SolidColor=#BarBack#
GreyScale=1
ImageAlpha=75
BarOrientation=Vertical
Flip=1

[MeterBand2b]
Meter=Bar
MeasureName=MeasureBand2
X=2R
Y=0r
W=10
H=100
BarImage=#@#Images\SpecBar2.jpg
SolidColor=#BarBack#
GreyScale=1
ImageAlpha=75
BarOrientation=Vertical
Flip=1

[MeterBand3b]
Meter=Bar
MeasureName=MeasureBand3
X=2R
Y=0r
W=10
H=100
BarImage=#@#Images\SpecBar3.jpg
SolidColor=#BarBack#
GreyScale=1
ImageAlpha=75
BarOrientation=Vertical
Flip=1

[MeterBand4b]
Meter=Bar
MeasureName=MeasureBand4
X=2R
Y=0r
W=10
H=100
BarImage=#@#Images\SpecBar4.jpg
SolidColor=#BarBack#
GreyScale=1
ImageAlpha=75
BarOrientation=Vertical
Flip=1

[MeterBand5b]
Meter=Bar
MeasureName=MeasureBand5
X=2R
Y=0r
W=10
H=100
BarImage=#@#Images\SpecBar5.jpg
SolidColor=#BarBack#
GreyScale=1
ImageAlpha=75
BarOrientation=Vertical
Flip=1

[MeterBand6b]
Meter=Bar
MeasureName=MeasureBand6
X=2R
Y=0r
W=10
H=100
BarImage=#@#Images\SpecBar6.jpg
SolidColor=#BarBack#
GreyScale=1
ImageAlpha=75
BarOrientation=Vertical
Flip=1

[MeterBand7b]
Meter=Bar
MeasureName=MeasureBand7
X=2R
Y=0r
W=10
H=100
BarImage=#@#Images\SpecBar7.jpg
SolidColor=#BarBack#
GreyScale=1
ImageAlpha=75
BarOrientation=Vertical
Flip=1

[MeterBand8b]
Meter=Bar
MeasureName=MeasureBand8
X=2R
Y=0r
W=10
H=100
BarImage=#@#Images\SpecBar8.jpg
SolidColor=#BarBack#
GreyScale=1
ImageAlpha=75
BarOrientation=Vertical
Flip=1

[MeterBand9b]
Meter=Bar
MeasureName=MeasureBand9
X=2R
Y=0r
W=10
H=100
BarImage=#@#Images\SpecBar9.jpg
SolidColor=#BarBack#
GreyScale=1
ImageAlpha=75
BarOrientation=Vertical
Flip=1

[MeterBand10b]
Meter=Bar
MeasureName=MeasureBand10
X=2R
Y=0r
W=10
H=100
BarImage=#@#Images\SpecBar10.jpg
SolidColor=#BarBack#
GreyScale=1
ImageAlpha=75
BarOrientation=Vertical
Flip=1

[MeterBand11b]
Meter=Bar
MeasureName=MeasureBand11
X=2R
Y=0r
W=10
H=100
BarImage=#@#Images\SpecBar11.jpg
SolidColor=#BarBack#
GreyScale=1
ImageAlpha=75
BarOrientation=Vertical
Flip=1

[MeterBand12b]
Meter=Bar
MeasureName=MeasureBand12
X=2R
Y=0r
W=10
H=100
BarImage=#@#Images\SpecBar12.jpg
SolidColor=#BarBack#
GreyScale=1
ImageAlpha=75
BarOrientation=Vertical
Flip=1

[MeterBand13b]
Meter=Bar
MeasureName=MeasureBand13
X=2R
Y=0r
W=10
H=100
BarImage=#@#Images\SpecBar13.jpg
SolidColor=#BarBack#
GreyScale=1
ImageAlpha=75
BarOrientation=Vertical
Flip=1

[MeterBand14b]
Meter=Bar
MeasureName=MeasureBand14
X=2R
Y=0r
W=10
H=100
BarImage=#@#Images\SpecBar14.jpg
SolidColor=#BarBack#
GreyScale=1
ImageAlpha=75
BarOrientation=Vertical
Flip=1

[MeterBand15b]
Meter=Bar
MeasureName=MeasureBand15
X=2R
Y=0r
W=10
H=100
BarImage=#@#Images\SpecBar15.jpg
SolidColor=#BarBack#
GreyScale=1
ImageAlpha=75
BarOrientation=Vertical
Flip=1

[MeterBand16b]
Meter=Bar
MeasureName=MeasureBand16
X=2R
Y=0r
W=10
H=100
BarImage=#@#Images\SpecBar16.jpg
SolidColor=#BarBack#
GreyScale=1
ImageAlpha=75
BarOrientation=Vertical
Flip=1

[MeterBand17b]
Meter=Bar
MeasureName=MeasureBand17
X=2R
Y=0r
W=10
H=100
BarImage=#@#Images\SpecBar17.jpg
SolidColor=#BarBack#
GreyScale=1
ImageAlpha=75
BarOrientation=Vertical
Flip=1

[MeterBand18b]
Meter=Bar
MeasureName=MeasureBand18
X=2R
Y=0r
W=10
H=100
BarImage=#@#Images\SpecBar18.jpg
SolidColor=#BarBack#
GreyScale=1
ImageAlpha=75
BarOrientation=Vertical
Flip=1

[MeterBand19b]
Meter=Bar
MeasureName=MeasureBand19
X=2R
Y=0r
W=10
H=100
BarImage=#@#Images\SpecBar19.jpg
SolidColor=#BarBack#
GreyScale=1
ImageAlpha=75
BarOrientation=Vertical
Flip=1
The point is, I am looking for the "winamp.exe" process. If it is running, then fine, let's capture the audio. If not, turn all the AudioLevel plugin measure off. We don't need them beating on the system once every 20 milliseconds.
You do not have the required permissions to view the files attached to this post.
User avatar
tjhrulz
Developer
Posts: 267
Joined: October 13th, 2016, 1:28 am
Location: Earth

Re: Strange high CPU Usage

Post by tjhrulz »

jsmorley wrote: The point is, I am looking for the "winamp.exe" process. If it is running, then fine, let's capture the audio. If not, turn all the AudioLevel plugin measure off. We don't need them beating on the system once every 20 milliseconds.
No idea why everyone doesn't just do that or even better yet only have it when the music state is playing since most people leave their music player open all the time and that is less CPU expensive than a process lookup.
User avatar
jsmorley
Developer
Posts: 22628
Joined: April 19th, 2009, 11:02 pm
Location: Fort Hunt, Virginia, USA

Re: Strange high CPU Usage

Post by jsmorley »

tjhrulz wrote:No idea why everyone doesn't just do that or even better yet only have it when the music state is playing since most people leave their music player open all the time and that is less CPU expensive than a process lookup.
Well, I could argue that a visualizer using AudioLevel and a player using NowPlaying are distinct things, that don't require each other.
User avatar
tjhrulz
Developer
Posts: 267
Joined: October 13th, 2016, 1:28 am
Location: Earth

Re: Strange high CPU Usage

Post by tjhrulz »

jsmorley wrote:Well, I could argue that a visualizer using AudioLevel and a player using NowPlaying are distinct things, that don't require each other.
True, although most of the time they are packaged together, right Marco? :welcome:
User avatar
eclectic-tech
Rainmeter Sage
Posts: 5384
Joined: April 12th, 2012, 9:40 pm
Location: Cedar Point, Ohio, USA

Re: Strange high CPU Usage

Post by eclectic-tech »

tjhrulz wrote:True, although most of the time they are packaged together, right Marco? :welcome:
Well I have create several visualizers, many that do not have any NowPlaying/WebNowPlaying measures.

I do incorporate audio level tests that hide all meters when the sound is muted. And a few that disable all child measures of the AudioLevel, but that does not reduce the system load very much; most of the load is caused by the parent measure.

The only drawback I see with linking AudioLevel measures to a process, is if it is enabled by default, the visualizer will not work when an end user downloads and tries it. Unless you guide them through setting up their player variable before trying it, they will think the skin is defective!

I incorporated the process test in the latest Sound Square visualizer skins, but it is disabled by default. That way the visualizer will respond to all sounds by default. The end user must set those variables in order for optimal functioning.

My 2 cents! :D
User avatar
MaroonED
Posts: 61
Joined: November 6th, 2011, 4:50 pm
Location: Germany

Re: Strange high CPU Usage

Post by MaroonED »

Did you also make any changes to the display resolution? Rendering images can cause high CPU usage. I recently upgraded from a full-HD to a 4K display and had to scale up all my skin images by 1.75x. Since then my CPU usage more than doubled. I can't pinpoint this to any single skin. Just one thing to look at maybe.

MaroonED