Our new official repo is on github
LCD Smartie version 5.6 is released!
Download it now: https://github.com/LCD-Smartie/LCDSmartie/releases
LCD Smartie version 5.6 is released!
Download it now: https://github.com/LCD-Smartie/LCDSmartie/releases
Perf plugin
Moderators: _X7JAY7X_, caesar, IFR, mattcro, limbo
-
- Posts: 34
- Joined: June 14th, 2009, 11:10 pm
Perf plugin
Hi guys I can't seam to get this plugin to work I put the "perf" dll file in the plugins dir. but I did not move the config-perf to my top dir. so I just wanted to know if it is important to move this file because I did not move the bignum dll and that works fine. can anyone tell me what I am doing wrong?
-
- Forum Supporter
- Posts: 590
- Joined: March 8th, 2006, 1:58 pm
- Location: Scotland
Re: Perf plugin
I guess this is the official/native Smartie perf.dll plugin? You should only need to copy the perf.dll file to your plugins folder. The config file does not need to be copied. It is just there to demonstrate the perf functions - look at it in a text editor (notepad) to see how the plugin should be called.
For some examples and info on the perf plugin, see the readme file that comes with it, http://forums.lcdsmartie.org/viewtopic.php?f=8&t=1134 and http://lcdsmartie.sourceforge.net/PerfPlugin.html
For some examples and info on the perf plugin, see the readme file that comes with it, http://forums.lcdsmartie.org/viewtopic.php?f=8&t=1134 and http://lcdsmartie.sourceforge.net/PerfPlugin.html
-
- Posts: 34
- Joined: June 14th, 2009, 11:10 pm
Re: Perf plugin
I added the code:
$dll(perf,1,4x20,$CPUSpeed)
$dll(perf,2,$CPUSpeed,1)
and I get the error [Bad Counter] on the first line and [No Such Graph] on the second line. When I change the code to:
$dll(perf,2,4x20$CPUSpeed)
$dll(perf,2,$CPUSpeed,1)
I get the error [No Such graph]. I'm all stuck.
$dll(perf,1,4x20,$CPUSpeed)
$dll(perf,2,$CPUSpeed,1)
and I get the error [Bad Counter] on the first line and [No Such Graph] on the second line. When I change the code to:
$dll(perf,2,4x20$CPUSpeed)
$dll(perf,2,$CPUSpeed,1)
I get the error [No Such graph]. I'm all stuck.
-
- Forum Supporter
- Posts: 590
- Joined: March 8th, 2006, 1:58 pm
- Location: Scotland
Re: Perf plugin
You're getting a few things mixed up in the parameters...
You can't use $CPUSpeed as the name of a graph. $CPUSpeed is one of the built-in Smartie commands and gives you the clock rate of your CPU (eg 3000 = 3GHz). The graph name parameter for perf must be a unique name that identifies/describes the graph, and is only used to distinguish between multiple independent graphs on the same screen and associate the lines of a multi-line graph together. It is NOT the performance counter name. So you could have one graph called MyCPUUsage and another called MyCPUSpeed (or whatever you want).
The performance counter name is the Windows internal name for the data you want to display (eg \Processor(1)\% Processor Time to get CPU Core 1 usage, or \ProcessorPerformance(Processor_Number_0)\frequency for Core 0 speed). You cannot use the Smartie built-in names like $CPUSpeed.
If you specify a 4-line graph, then you should have 4 calls to the perf plugin - one for each line. Function 1 is used to set up the graph and show the top line (4 in this case), and Function 2 is used to draw the remaining lines (3-1 in this case).
This will create a 4x20 graph that shows CPU usage (the default is usage of core 0 if you don't specify a performance counter to use - this will not work on non-English systems!)
If your system language is NOT English, you need to specify performance counter names in your language. Click Start>Run and enter perfmon. Click the + button on the Performance Monitor window to add a counter, and browse the list of counters to find the name you need. If you mis-spell a counter name, you will get the [Bad Counter] error.
If you want to use other counters, it gets a bit more complicated because you must specify ALL the parameters. See the perf help page here: http://lcdsmartie.sourceforge.net/PerfPlugin.html
Some examples:
Tiny graph of size 1x7 (leaving 1 spare custom character) that shows total CPU usage (ie both cores on a dual-core), updated once per second. Note that you must change the counter name string (\Processor(_Total)\...) to the real name in your language if using non-English Windows). Note that you don't need a name for the graph if it's only 1 line (the name would go after the last comma - you must keep the comma).
To expand the Total CPU Usage graph over 2 lines... (note that the bottom line is 1, top line is 2)
To display total processor usage as a value in percent:
(This is better than $CPUUsage because it reports the total for all cores in a multi-core system. $CPUUsage only reports Core 0 usage.)
There are some more examples in the file config-perf.ini that comes zipped with the perf.dll
You can't use $CPUSpeed as the name of a graph. $CPUSpeed is one of the built-in Smartie commands and gives you the clock rate of your CPU (eg 3000 = 3GHz). The graph name parameter for perf must be a unique name that identifies/describes the graph, and is only used to distinguish between multiple independent graphs on the same screen and associate the lines of a multi-line graph together. It is NOT the performance counter name. So you could have one graph called MyCPUUsage and another called MyCPUSpeed (or whatever you want).
The performance counter name is the Windows internal name for the data you want to display (eg \Processor(1)\% Processor Time to get CPU Core 1 usage, or \ProcessorPerformance(Processor_Number_0)\frequency for Core 0 speed). You cannot use the Smartie built-in names like $CPUSpeed.
If you specify a 4-line graph, then you should have 4 calls to the perf plugin - one for each line. Function 1 is used to set up the graph and show the top line (4 in this case), and Function 2 is used to draw the remaining lines (3-1 in this case).
This will create a 4x20 graph that shows CPU usage (the default is usage of core 0 if you don't specify a performance counter to use - this will not work on non-English systems!)
Code: Select all
$dll(perf,1,4x20,MyCPUUsage)
$dll(perf,2,MyCPUUsage,3)
$dll(perf,2,MyCPUUsage,2)
$dll(perf,2,MyCPUUsage,1)
If you want to use other counters, it gets a bit more complicated because you must specify ALL the parameters. See the perf help page here: http://lcdsmartie.sourceforge.net/PerfPlugin.html
Some examples:
Tiny graph of size 1x7 (leaving 1 spare custom character) that shows total CPU usage (ie both cores on a dual-core), updated once per second. Note that you must change the counter name string (\Processor(_Total)\...) to the real name in your language if using non-English Windows). Note that you don't need a name for the graph if it's only 1 line (the name would go after the last comma - you must keep the comma).
Code: Select all
$dll(perf,1,1x7#u#99#10#0#100#\Processor(_Total)\% Processor Time,)
Code: Select all
[$dll(perf,1,2x8#u#1#10#0#100#\Processor(_Total)\% Processor Time,CpuLoad)]
[$dll(perf,2,CpuLoad,1)]
(This is better than $CPUUsage because it reports the total for all cores in a multi-core system. $CPUUsage only reports Core 0 usage.)
Code: Select all
$dll(perf,4,5,\Processor(_Total)\% Processor Time)
or with better formatting (always takes 3 characters width):
$Right($dll(perf,4,5,\Processor(_Total)\% Processor Time),$3%)%
-
- Posts: 34
- Joined: June 14th, 2009, 11:10 pm
Re: Perf plugin
So how do you name the graph? I opened up performance monitor but I just see a graph there and bunch of other stuff on the bottom like Color, Scale, Counter, Instance, Parent, Objects, and Computer. and I tried all your examples but I get nothing I am using an english ver. of Windows 7.
-
- Posts: 7
- Joined: February 18th, 2010, 1:47 am
Re: Perf plugin
I'm having the exact same issue. I've carefully written the code ensuring all the options are formatted correctly, but I constantly get [Bad Counter]
Currently using
Only when pointed at the pagefile usage did I actually get a bar of any discription...but it just filled in blocks from the right hand side, then that was it. Least it did error though.
Is this a Win7 issue maybe?
I was hoping to create a graph for each of my 4 cores...no luck even getting one or a total
lol
Currently using
Code: Select all
$dll(perf,1,1x7#u#99#10#0#100#\Processor(_Total)\% Processor Time,mycpu)
Is this a Win7 issue maybe?
I was hoping to create a graph for each of my 4 cores...no luck even getting one or a total

-
- Posts: 34
- Joined: June 14th, 2009, 11:10 pm
Re: Perf plugin
Are you also using windows7 because I am the other problems I was having with win7 was it was not displaying my up and down speeds I was only able to get that on my XP computer.proph3t wrote:I'm having the exact same issue. I've carefully written the code ensuring all the options are formatted correctly, but I constantly get [Bad Counter]
Currently usingOnly when pointed at the pagefile usage did I actually get a bar of any discription...but it just filled in blocks from the right hand side, then that was it. Least it did error though.Code: Select all
$dll(perf,1,1x7#u#99#10#0#100#\Processor(_Total)\% Processor Time,mycpu)
Is this a Win7 issue maybe?
I was hoping to create a graph for each of my 4 cores...no luck even getting one or a totallol
-
- Forum Supporter
- Posts: 590
- Joined: March 8th, 2006, 1:58 pm
- Location: Scotland
Re: Perf plugin
Ah, I'm using XP - hardly used 7 yet, and only at work so no fiddling "under the hood". Things might be a bit different in Win7? I don't think the counter names have changed, but they might not be enabled on your system. See if you can view/add any of the counters in PerfMon.
Some info on using PerfMon to view counters from Microsoft: http://technet.microsoft.com/en-us/libr ... 49115.aspx
See bottom of http://searchsystemschannel.techtarget. ... 36,00.html for step-by-step PerfMon usage.
On XP, you can see the full counter name by right-clicking on the performance graph and clicking Properties. Then you will see a list of the counter names - this is what you put as the counter parameter in Smartie's perf plugin. Unfortunately there doesn't seem to be a way to copy the counter name so it can be pasted into Smartie.
PS My version of perf.dll is:
File Version: 0.0.0.5
Product Version: 5.3.2.0
Some info on using PerfMon to view counters from Microsoft: http://technet.microsoft.com/en-us/libr ... 49115.aspx
See bottom of http://searchsystemschannel.techtarget. ... 36,00.html for step-by-step PerfMon usage.
On XP, you can see the full counter name by right-clicking on the performance graph and clicking Properties. Then you will see a list of the counter names - this is what you put as the counter parameter in Smartie's perf plugin. Unfortunately there doesn't seem to be a way to copy the counter name so it can be pasted into Smartie.
PS My version of perf.dll is:
File Version: 0.0.0.5
Product Version: 5.3.2.0
-
- Posts: 7
- Joined: February 18th, 2010, 1:47 am
Re: Perf plugin
I was able to get it working with a version of Perf listed on the site here...a Vista version I think, although the one I was originally trying was downloaded from the main plugin page, assumed it would be the latest. Everything is working fine, but still cant get any network speeds to show. I'll keep trying, and post my results. Thanks for the help guys.
ps. Anyway to use the disk read and write speeds, that would be cool
Theres Counters for them in Win7, but my attempts failed. Anyone work at the correct syntax for a disk read graph?
ps. Anyway to use the disk read and write speeds, that would be cool

-
- Forum Supporter
- Posts: 590
- Joined: March 8th, 2006, 1:58 pm
- Location: Scotland
Re: Perf plugin
The Smartie website mostly hasn't been updated in ages (high time it was...), so the version on the forum here is newer and has a few fixes.
What are you trying to use for the disk and network counters? I haven't tried anything like that, only processor and memory.
What are you trying to use for the disk and network counters? I haven't tried anything like that, only processor and memory.
-
- Forum Supporter
- Posts: 734
- Joined: October 15th, 2005, 10:39 am
- Location: Romania
- Contact:
Re: Perf plugin
Download speed:
Upload speed:
Uses formatting.dll to automagically add K or M modifier to the manually written B/s.
Each uses 8 chars. You can also position it with $Right.
Code: Select all
$dll(formatting,4,$dll(perf,4,5,\Network Interface(Realtek RTL8168C[P]_8111C[P] Family PCI-E Gigabit Ethernet NIC [NDIS 6.20])\Bytes Received/sec),##0.0)B/s
Code: Select all
$dll(formatting,4,$dll(perf,4,5,\Network Interface(Realtek RTL8168C[P]_8111C[P] Family PCI-E Gigabit Ethernet NIC [NDIS 6.20])\Bytes Sent/sec),##0.0)B/s
Each uses 8 chars. You can also position it with $Right.

-
- Posts: 7
- Joined: February 18th, 2010, 1:47 am
Re: Perf plugin
Thanks for that Caesar, I'll try it as soon as I get my new motherboard installed. The previous one caught fire, I kid you not. A mosfet near the CPU decided to pack it in dramatically. Thanks God the Phenom is ok 
Thanks again.

Thanks again.
-
- Posts: 34
- Joined: June 14th, 2009, 11:10 pm
Re: Perf plugin
Ok I got some of the stuff working with the new download of perf however when I add another line I get all kinds of errors like [No such graph] and stuff. How can I get more then one line to display?
-
- Forum Supporter
- Posts: 734
- Joined: October 15th, 2005, 10:39 am
- Location: Romania
- Contact:
Re: Perf plugin
Each graph needs its own name so smartie knows what line belongs to each graph.
Each line of the same graph needs to be referenced by the same graph name.
Post the code that throws the error if you can't get it working.
Each line of the same graph needs to be referenced by the same graph name.
Post the code that throws the error if you can't get it working.
-
- Posts: 34
- Joined: June 14th, 2009, 11:10 pm
Re: Perf plugin
Ok this is what I got on one line...
but when I addthe second line as....
I get an error.
Code: Select all
$dll(perf,1,1x40#u\TCPv4\Segments Recived/sec,)
Code: Select all
$dll(perf,2,#u\TCPv4\Segments Recived/sec,1)
-
- Posts: 7
- Joined: February 18th, 2010, 1:47 am
Re: Perf plugin
While all the experts are in the room
...how do we get around the issue of the TinyGraphs all showing the same thing when used on the same screen, and showing where other symbols are being used? Like a block symbol is showing the tiny graph in its place. I coded to show my 4 cores on one screen, but they show identical. And another screen showing total CPU usage with Perf, and memory usage below with the normal large block graph, shows the TinyGraph in the memory blocks. Looks "interesting" lol 


-
- Posts: 34
- Joined: June 14th, 2009, 11:10 pm
Re: Perf plugin
Ok I finally got it working I was using ver.1 then I downloaded ver.5 and it works good. I do have one problem I can't get the tiny graph to work when I enter 99 as bar style it gives me an error.
-
- Forum Supporter
- Posts: 590
- Joined: March 8th, 2006, 1:58 pm
- Location: Scotland
Re: Perf plugin
From the Perf help page at http://lcdsmartie.sourceforge.net/PerfPlugin.html
You're omitting some of the required option parameters - if you want to specify the counter name (TCP segments) then you MUST include ALL the other options. So your 2 lines could look like:
* If you're going to use more than 1 line for your graph, you MUST give the 1st line a name too (eg TCPsegs), so that Perf can tie all the lines together!
* For the second line, you only have to specify function 2 (1st line uses function 1), the name of the graph and which line it is (1)
* You might have to change the Max scale for the graph depending on the likely maximum segments/sec.
* You can't have a graph larger than 1x8 if you want to use the tinygraph style (99) - this is because there are only 8 custom characters allowed at a time (limitation of the LCD, not Smartie), so I've used a bar style of 1 (each character cell is a single "slice" of the graph, rather than each character cell forming 5 slices of the graph)
* I've specified 10 as the SampleTime parameter to give 1 update per second.
* You've typed "received" wrong, so you might get a "bad counter" error.
I don't think you can have a tiny graph over more than 1 line (due to the custom character limit). You also can't (AFAIK) have 2 or more independent tiny graphs, because they try to use the same set of custom chars...
Check out the tinybar and 2bars plugins (and a couple of other similar ones) for alternatives to the graphs in the perf plugin. You can use function 4 of the perf plugin to get counter values as numbers, which you can use the bar plugins to display.
In your top line you had$dll(perf,1,[options],[name])
[options] takes the form: HeightxWidth#Direction#BarStyle#SampleTime#min#max#CounterName
Where:
* HeightxWidth is the size of the bar graph
* Direction is one of: d, u, l, r [for down/up/left/right]. [default: u]
* BarStyle selects the custom characters to use. 0 means no custom characters (so you can define your own), 1 means a solid bar, 99 is for "Tiny graphs", etc. The full list of styles is at the end of this page. [default: 1]
* SampleTime is how often the counter value is fetched, in 1/10 seconds. [default: 5 (i.e. 0.5 seconds)]
* min - used for scaling graph. [default: 0]
* max - used for scaling graph. [default: 100]
* CounterName is a name of a performance counter. [default: \Processor(0)\% Processor Time]
All options are optional except HeightxWidth, but the order must be maintained - so to leave BarStyle out, you must also leave out Sampletime, min, max and CounterName.
Code: Select all
$dll(perf,1,1x40#u\TCPv4\Segments Recived/sec,)
Code: Select all
$dll(perf,1,1x40#u#1#10#0#100#\TCPv4\Segments Recieved/sec,TCPsegs)
$dll(perf,2,TCPsegs,1)
* For the second line, you only have to specify function 2 (1st line uses function 1), the name of the graph and which line it is (1)
* You might have to change the Max scale for the graph depending on the likely maximum segments/sec.
* You can't have a graph larger than 1x8 if you want to use the tinygraph style (99) - this is because there are only 8 custom characters allowed at a time (limitation of the LCD, not Smartie), so I've used a bar style of 1 (each character cell is a single "slice" of the graph, rather than each character cell forming 5 slices of the graph)
* I've specified 10 as the SampleTime parameter to give 1 update per second.
* You've typed "received" wrong, so you might get a "bad counter" error.
I don't think you can have a tiny graph over more than 1 line (due to the custom character limit). You also can't (AFAIK) have 2 or more independent tiny graphs, because they try to use the same set of custom chars...
Check out the tinybar and 2bars plugins (and a couple of other similar ones) for alternatives to the graphs in the perf plugin. You can use function 4 of the perf plugin to get counter values as numbers, which you can use the bar plugins to display.
-
- Posts: 34
- Joined: June 14th, 2009, 11:10 pm
Re: Perf plugin
Code: Select all
$dll(perf,1,1x40#u\TCPv4\Segments Recieved/sec,TCPsegs)
$dll(perf,2,TCPsegs,1)
-
- Forum Supporter
- Posts: 590
- Joined: March 8th, 2006, 1:58 pm
- Location: Scotland
Re: Perf plugin

EDIT: I think I just copied your code, which also had 1x40 in it - probably from when you were trying a 1x40 tinygraph.
-
- Posts: 34
- Joined: June 14th, 2009, 11:10 pm
Re: Perf plugin
Thanks I was looking throuh it after I posted this mes and noticed that as well thanks for your help.
-
- Posts: 1
- Joined: April 22nd, 2007, 8:14 pm
Re: Perf plugin
OK, after a lot of research i found out that in English windows 7 the new names for the processor counters is as follows...
\Processor Information(0,0)\% Processor Time
\Processor Information(0,1)\% Processor Time
\Processor Information(0,2)\% Processor Time
\Processor Information(0,3)\% Processor Time
Hope this helps!
This cleared up my bad counter problem, M$ must have changed them, because until about a week ago, my config had worked for years!
\Processor Information(0,0)\% Processor Time
\Processor Information(0,1)\% Processor Time
\Processor Information(0,2)\% Processor Time
\Processor Information(0,3)\% Processor Time
Hope this helps!
This cleared up my bad counter problem, M$ must have changed them, because until about a week ago, my config had worked for years!