I was rummaging through the contents of my hard drive and I found PerfMonG – a minimalistic performance monitor that I wrote sometime back in 2004. At the time I wanted something like GKrellM on my Windows box, so I created one myself. I admit, GKrellM is better, more configurable, supports skins and etc. I didn’t really need all of that. What I wanted was an app which would display my CPU usage, free RAM, swap usage, free hard drive space, number of running processes, uptime, and free HD space.
It’s nothing special, but it works. It has a small memory footprint, it runs in the background most of the time and doesn’t get in your way. Of course if you are really hard core about displaying useful info on your desktop, Samurize is probably a better application. But if you just want something quick and simple, check out PerfMonG.
I created a Google Code page for it, uploaded all the source to subversion there. You can also download a rar file with all the code from the downloads section.
PerfMonG is a Windows only application written in C#. Any bug reports, patches and contributions would be greatly appreciated. I haven’t really touched this code since 2004 – with an exception for a quick cleanup before it got uploaded. But if someone out there likes it, or finds it useful, I’ll get back and continue developing it.
[tags].net, programming, c#, PerfMonG, performance monitoring, perfomance monitor, google code[/tags]
Wow that’s pretty cool!! I love performance monitor programs used a ton of them over the years. haha. I will check it out, but I guess I give up on windows. I still dual boot but I just don’t ever use windows anymore. It’s just a waste of my HD space. I do plan on boot into it some time soon and updating several programs tho, I’ll download and install your program then. the minimalism appeals to me and it looks about as functional as what i am currently using and I’m hoping it has a smaller footprint. haha.
I had to laugh over the comment in your code FAQs
Yep my thoughts exactly!
I would make my “not-touching-Vista-with-it” pole longer than 10 feet… maybe 50 feet, and it’d have to be that long before I start not touching Vista with it
On a more relevant note, would I need to do anything with the code to make it run or does Windows know what to do with C#
What am I saying.. of course it won’t, I’ll rephrase that – what do I need to do to make the code into something I can click on and run?
Matt, I haven’t even got around to trying it yet….but there is a setup installation file on luke’s perfmong code page, look under featured download!! Download that and then start it as usual for windows installation. That should install his program for ya. You may also want to look at the FAQ under Featured Wiki Pages. As far as I know that should be all there is too it. haha. As to making the code itself work, well ya need a compiler. lmao.
Matt, the setup.exe file will install a compiled working version that can be clicked and run.
If you want to compile to code you will probably need the .NET sdk which will include a C# compiler.
I used Microsoft Visual Studio so the code is actually a Visual Studio project. I think you just need to open the .csproj file and the IDE will know what to do with all of it.
Forgot to remind ya you will need the .NET Framework. Luke says that on his code page and you probably already have it as alot of programs need it. If not Luke was kind enuff to provide a download link. install that first if ya don’t have it. good luck.
And luke if I’m wrong just tell me I am an idiot ;) But I’m pretty sure I’m right. lmao!!
Starhawk, you are correct – .NET should be all that’s needed to run the app.
i downloaded the source and it runs great on XP.
If i was building this the only two additions i would make would be
a) Ability to move the forum just by clicking on it and dragging it.
b) maybe a “user specified” threshold for the CPU activity to change the color from blue to red. I think you have it hard-coded for 70% utilization, allowing the user to set their preference would be cool.
Listen to me QA a 4 year old tinker app! lol ITS GREAT DONT CHANGE A THING (i will if i have time)
Great suggestions. The threshold thing should be trivial to add. Changing position by dragging might be bit more complicated because I’m essentially using a borderless window and I think usually the dragging events are triggered by clicking on a window border. It might require bit more effort to implement this. :)
Btw, could you post these suggestions under the Issues tab on the project website? Best make it two issues/feature requests so I can check them off independently as they are implemented.
Also, if you implement any functionality yourself, I would love if you sent in a patch (or barring that just a zip/rar/tar with the modified code). If you do, make sure you put your name in the comments somewhere so that you can get the credit for the alterations. I’ll also credit you on the front page.
Thanks!
i made it draggable (well me and an example from codeproject did so)
i have a zip for you but i dont know where to send it to!
Also my email address is the same as my Google acct so if you want you can add me to the project and i can uplaod it via subversion.
thanks,
mcm
Awesome! I didn’t even get around to look at it yet. :) Does it automatically update the values in the Properties panel when you do it?
Can you post a comment under the Issue and attach a file to it? That would probably be the easiest way to do this now.
Either that, or you can email it to me. I have my email posted on the Contact Me page.
Once again – awesome! Thanks for the help!
Mile! Thanks for all the help!
I integrated your changes and created a new release. Version 0.2.3 can now be dragged, asks you to save the config on exit, and doesn’t crash if the folder in %APPDATA% is not present.
There is a new installer and code rar in the downloads section. :)
Also, you can still check out 0.2.1 or 0.2.3 from SVN by going to
http://perfmong.googlecode.com/svn/tags/release_0.2.1/
http://perfmong.googlecode.com/svn/tags/release_0.2.3/
instead of the trunk. :)
Cool! Thats great.
There is one more little thing that’s “buggin” me still! ;)
If you open properties., Change opacity or a colour, only hit “Apply” then re-open properties it obtains the old values for the colours and opacity slider. I dont know if i caused this by destroying the props object and re-creating it or if its historical. However there are two ways we can go about fixing it.
1. Re-write the config values for the alpha, color, etc back to config before calling the props dialogue.
2. Remove the “Save Config Changes” and have the “Apply” button actually write to config when you press it
i personally like solution 2 better because it seems more elegant. and i mean, if someone hits “Apply” chances are they want those changes to stick. Even next time!
thanks,
mcm
Oops, it might be new. ;) I don’t remember. But yes, either solution sounds reasonable. Feel free to play around with it. If not, I’ll try to knock it out when I get home today.
Btw, what do you use for SVN on windows? I use Tortoise SVN. If you right click on a folder you checked out it will let you to create a patch – it’s one of the options there. It might be easier to just generate a patch and submit it, rather than attach multiple source files.
Also, I want to put your name on the front page as a contributor. Should I just credit you as Mike? Do you want me to put your last name or nickname there? How about a URL? Let me know. I just don’t want to put your email out there in plain text. :)
you can credit me as
mcmcom
werid, my post was cut off
Credits :
mcmcom (www.mustcodemore.com)
i have tortoisesvn and will do the patch stuff via that.
i will also try to remove the write config button and incorporate it into the apply button to fix the outstanding issue over the weekend.
thanks,
mcm
Awesome! I credited you on the front page, and uploaded the patch you submitted. I really appreciate all the help.
I can’t tell you how awesome it is to find out that my old, half-forgotten little project actually got a second wind, and is now in active development (well, sort of). :)
Hi Luke,
Well its friday. I should be working but instead i submitted another issue with the PerfMonG app and then submitted a patch that will fix it. That killed 30 minutes. 1.5 hours to go :(
mcm
Dude! You rule!
I will test it tonight.
Btw, you could have submitted the patch as a “reply” to issue #5. Also, when you create an issue, if you put maciakl in the CC or the Owner field, I will get shot an instant email about it. :)
I really appreciate all this help. :mrgreen:
No problem about the help. As i said in my earlier post, i was bored at work and messing around with side projects only helps me stay slightly sharper than dull.
In future i will add patches as replies, i didn’t even see the add comment link on there.
i wonder if we can do dual cpu monitoring….;)
Actually, it doesn’t have a reply button – just a text field on the bottom. If you click on it, it opens up with more options and additional text fields. It’s the same concept like replies in Gmail.
It’s kinda funky, but it works.
Btw, I don’t think I ever even considered doing dual screen, or dual CPU monitoring when I started writing this app.
I added dual CPU monitoring as a feature request. I don’t have a dual CPU machine to test it on, but if you do, and you can implement it then it would be awesome. :)
i do have a couple dual cpu machines. ill look into it. If you look at a win task mgr on a dual cpu box you will see that the cpu usage is a single percentage (same thing that you have) however they do provide two graphs for it on a dual cpu machine. So there must be something else that is monitoring each separately.
ill investigate it sometime this week if im not too busy and let you know my findings.
thanks,
mcm
Awesome. I applied the patch and chucked it into the repository as release_0.2.5_candidate branch. I’ll merge it with HEAD and roll a release bit later.
If you get the dual CPU stuff working, I will include it also and just increment the major version to 0.3.0. :)
Just a heads up – I added the editable CPU tresholds (Issue 2) in the 0.2.5 release candidate. So if you want the freshest code, please check out from:
http://perfmong.googlecode.com/svn/branches/release_0.2.5_candidate/
rather than from trunk. I haven’t had a chance to test it throughly so that’s why the code is in the branch. I will probably merge it to trunk over the weekend. But for now, work of the branch – it will be easier to merge all these things later. :)
Pingback: Terminally Incoherent » Blog Archive » PerfMonG 0.2.5 Released