It is currently March 19th, 2024, 4:15 am

New UsageMonitor plugin

Changes made during the Rainmeter 4.2 beta cycle.
User avatar
jsmorley
Developer
Posts: 22632
Joined: April 19th, 2009, 11:02 pm
Location: Fort Hunt, Virginia, USA

Re: New UsageMonitor plugin

Post by jsmorley »

Yincognito wrote: December 17th, 2018, 12:04 am Well, in the dictionary of my language, it is https://en.wiktionary.org/wiki/Aalenian#Adjective - so I have an excuse :D

Thinking about it, the plugin should not sort those hundreds of 0% CPU processses (as it could impact its performance), but you're right that it should include at least the 0.0[1-9]% processes. The plugin developer will decide on that though.
We have achieved agreement...
User avatar
Yincognito
Rainmeter Sage
Posts: 6948
Joined: February 27th, 2015, 2:38 pm
Location: Terra Yincognita

Re: New UsageMonitor plugin

Post by Yincognito »

jsmorley wrote: December 17th, 2018, 12:07 am We have achieved agreement...
Indeed. In the meantime, massive regex search and replace takes place in my RainLexer powered Notepad++ in order to 'convert' the NomFerp skin to a brand new UsageMonitor one. It will be soon the time to celebrate both the conversion and our agreement. ;-)
User avatar
jsmorley
Developer
Posts: 22632
Joined: April 19th, 2009, 11:02 pm
Location: Fort Hunt, Virginia, USA

Re: New UsageMonitor plugin

Post by jsmorley »

Yincognito wrote: December 17th, 2018, 12:37 am Indeed. In the meantime, massive regex search and replace takes place in my RainLexer powered Notepad++ in order to 'convert' the NomFerp skin to a brand new UsageMonitor one. It will be soon the time to celebrate both the conversion and our agreement. ;-)


I think you will be happy with the improved performance of your skin using UsageMonitor. It uses far less CPU than PerfMon or AdvancedCPU.
User avatar
SilverAzide
Rainmeter Sage
Posts: 2579
Joined: March 23rd, 2015, 5:26 pm
Contact:

Re: New UsageMonitor plugin

Post by SilverAzide »

jsmorley wrote: December 16th, 2018, 11:27 pmBTW, I can't put my finger on it exactly, and we will have to have tjhrulz weigh in, but it seems to treat anything less than 0.1% as "zero" for this purpose. So if a process is using 0.09%, it appears to be ignored. We might want to tweak that, I'm not sure.
It would be nice if UsageMonitor returned processes down to the 0.01% level, like Windows Resource Monitor and plugins like NomFerp and some of the other UsageMonitor clones do. I was never quite clear why AdvancedCPU and UsageMonitor stopped at 0.1% other than it just being an arbitrary stopping point.
User avatar
Yincognito
Rainmeter Sage
Posts: 6948
Joined: February 27th, 2015, 2:38 pm
Location: Terra Yincognita

Re: New UsageMonitor plugin

Post by Yincognito »

So, I've successfully completed the NomFerp to UsageMonitor transition in my Processes skin, and I'm almost done in doing the same for PerfMon to UsageMonitor transition in my Battery skin. I'm having UsageMonitor displaying the Charge/Discharge rates for my laptop battery, using the Name option instead of the Index one (as I already had in place some Registry query to identify the correct Perfmon.msc battery instance(s) by name). I have two questions though:

1. Is UsageMonitor always sorting the instances from high values to low values, or just for the Perfmon.msc Process object?
2. Is there any chance of implementing Charge/Discharge rate measures in the Power plugin, or should folks use UsageMonitor for getting them? You know, since logically such measures should belong to the Power plugin...
jminternelia
Posts: 65
Joined: March 21st, 2017, 3:46 am

Re: New UsageMonitor plugin

Post by jminternelia »

Trying to wrap my head around how to Measure the Ram usage from the process using the most cpu.
User avatar
jsmorley
Developer
Posts: 22632
Joined: April 19th, 2009, 11:02 pm
Location: Fort Hunt, Virginia, USA

Re: New UsageMonitor plugin

Post by jsmorley »

jminternelia wrote: December 18th, 2018, 3:02 pm Trying to wrap my head around how to Measure the Ram usage from the process using the most cpu.

Code: Select all

[Rainmeter]
Update=1000
DynamicWindowSize=1
AccurateText=1

[Variables]

[MeasureHighestUsedCPU]
Measure=Plugin
Plugin=UsageMonitor
Alias=CPU
Blacklist=_Total|Idle|dwm|wmpnetwk|csrss|svchost|lsass|System|system
Index=1

[MeasureThatProcessRAM]
Measure=Plugin
Plugin=UsageMonitor
Alias=RAM
Name=[MeasureHighestUsedCPU]
DynamicVariables=1

[MeasureRAMNumberValue]
Measure=Calc
Formula=MeasureThatProcessRAM

[MeterResult]
Meter=String
MeasureName=MeasureRAMNumberValue
FontSize=12
FontWeight=400
FontColor=255,255,255,255
SolidColor=47,47,47,255
Padding=5,5,5,5
AutoScale=1
NumOfDecimals=1
AntiAlias=1
DynamicVariables=1
Text=Top CPU: [MeasureHighestUsedCPU] at [MeasureHighestUsedCPU:1]%#CRLF#RAM: %1B

1.png

Getting the values is trivial. Displaying them in a String meter takes a little thought. This is because all UsageMonitor measures return two distinct values. A string value that is the "name" of the process, and a number value that is the numeric value returned for the counter.

Since String meter always use the string value when MeasureName is used, to get the number values the way we want them we dynamically use [SectionVariables:] for the number values. This is pretty straightforward with the CPU percentage in [MeasureHighestUsedCPU:1], we just tell it that we want the number with one decimal place.

It is a bit harder with [MeasureThatProcessRAM], since we want to display it not only with only one decimal place, but also AutoScaled. We add AutoScale=1 to the meter, but the rub is, that only works with things defined in MeasureName. Again, MeasureName will only use string values from measures, so we create another measure, [MeasureRAMNumberValue], that results in the same string and number value from [MeasureThatProcessRAM], using just the numeric value. Then we can use that new measure in MeasureName, it uses AutoScale and NumOfDecimals, and all is well.
jminternelia
Posts: 65
Joined: March 21st, 2017, 3:46 am

Re: New UsageMonitor plugin

Post by jminternelia »

jsmorley wrote: December 18th, 2018, 3:30 pm

Code: Select all

[Rainmeter]
Update=1000
DynamicWindowSize=1
AccurateText=1

[Variables]

[MeasureHighestUsedCPU]
Measure=Plugin
Plugin=UsageMonitor
Alias=CPU
Blacklist=_Total|Idle|dwm|wmpnetwk|csrss|svchost|lsass|System|system
Index=1

[MeasureThatProcessRAM]
Measure=Plugin
Plugin=UsageMonitor
Alias=RAM
Name=[MeasureHighestUsedCPU]
DynamicVariables=1

[MeasureRAMNumberValue]
Measure=Calc
Formula=MeasureThatProcessRAM

[MeterResult]
Meter=String
MeasureName=MeasureRAMNumberValue
FontSize=12
FontWeight=400
FontColor=255,255,255,255
SolidColor=47,47,47,255
Padding=5,5,5,5
AutoScale=1
NumOfDecimals=1
AntiAlias=1
DynamicVariables=1
Text=Top CPU: [MeasureHighestUsedCPU] at [MeasureHighestUsedCPU:1]%#CRLF#RAM: %1B


1.png


Getting the values is trivial. Displaying them in a String meter takes a little thought. This is because all UsageMonitor measures return two distinct values. A string value that is the "name" of the process, and a number value that is the numeric value returned for the counter.

Since String meter always use the string value when MeasureName is used, to get the number values the way we want them we dynamically use [SectionVariables:] for the number values. This is pretty straightforward with the CPU percentage in [MeasureHighestUsedCPU:1], we just tell it that we want the number with one decimal place.

It is a bit harder with [MeasureThatProcessRAM], since we want to display it not only with only one decimal place, but also AutoScaled. We add AutoScale=1 to the meter, but the rub is, that only works with things defined in MeasureName. Again, MeasureName will only use string values from measures, so we create another measure, [MeasureRAMNumberValue], that results in the same string and number value from [MeasureThatProcessRAM], using just the numeric value. Then we can use that new measure in MeasureName, it uses AutoScale and NumOfDecimals, and all is well.
Perfect.
jminternelia
Posts: 65
Joined: March 21st, 2017, 3:46 am

Re: New UsageMonitor plugin

Post by jminternelia »

I'm seeing some not insignificant variations between what Task Manager reports and what Usage Monitor shows.

Image

RAM is just about spot on and can be attributed to different update cycles, but 0.9% vs 2.1% on CPU usage? Is that also just difference reported due to variations in update times as well? Stays pretty consistent in that Task Manager is always reporting higher.

Code: Select all

[MeasureHighestUsedCPU1]
Measure=Plugin
Plugin=UsageMonitor
Alias=CPU
Blacklist=_Total|Idle|dwm|wmpnetwk|csrss|svchost|lsass|System|system|Memory Compression|wininit|RemindersServer|spoolsv|IpOverUsbSvc
Index=1
Rollup=1

[MeasureThatProcessRAM1]
Measure=Plugin
Plugin=UsageMonitor
Alias=RAM
Name=[MeasureHighestUsedCPU1]
DynamicVariables=1

[MeasureRAMNumberValue1]
Measure=Calc
Formula=MeasureThatProcessRAM1

[MeterHighestUsedCPU1]
Meter=String
MeasureName=MeasureHighestUsedCPU1
MeasureName2=MeasureCPUforScaling1
AutoScale=1
NumOfDecimals=1
DynamicVariables=1
FontColor=#Color0#
FontFace=Denton
FontSize=7
AntiAlias=1
StringCase=UPPER
Text=%1
InlinePattern=\:
InlineSetting=Color | 251,134,80
InlinePattern2=\.
InlineSetting2=Color | 251,134,80
InlinePattern3=\%
InlineSetting3=Color | 251,134,80
X=0
Y=59

[MeterResult]
Meter=String
MeasureName=MeasureRAMNumberValue1
DynamicVariables=1
FontColor=#Color0#
FontFace=Denton
FontSize=7
AutoScale=1
NumOfDecimals=1
AntiAlias=1
StringCase=UPPER
Text=%1B
InlinePattern=B
InlineSetting=Color | 251,134,80
InlinePattern2=MB
InlineSetting2=Color | 251,134,80
InlinePattern3=GB
InlineSetting3=Color | 251,134,80
X=200
Y=59

[MeterHighestUsedCPU%1]
Meter=String
MeasureName=MeasureHighestUsedCPU1
MeasureName2=MeasureCPUforScaling1
AutoScale=1
NumOfDecimals=1
DynamicVariables=1
FontColor=#Color0#
FontFace=Denton
FontSize=7
AntiAlias=1
Text=[MeasureHighestUsedCPU1:1]
InlinePattern=\:
InlineSetting=Color | 251,134,80
InlinePattern2=\.
InlineSetting2=Color | 251,134,80
InlinePattern3=\%
InlineSetting3=Color | 251,134,80
StringAlign=Right
Y=59
X=372
User avatar
Jeff
Posts: 325
Joined: September 3rd, 2018, 11:18 am

Re: New UsageMonitor plugin

Post by Jeff »

https://docs.microsoft.com/en-us/windows-insider/at-home/Whats-new-wip-at-home-20h1#gpu-temperature-comes-to-task-manager-build-18963
Temperatures are coming to UsageMonitor, now MSIAfterburner and what other plugins that are out there can be killed
EDIT: Nevermind, just remembered CPU temp still isn't, so you'll have to keep external plugins for that
Post Reply