Suggestion - Only restrain when PC is in use

Started by Scott, May 13, 2010, 05:35:54 PM

Previous topic - Next topic

Scott

I don't make suggestions lightly, and I think this is a very good one.  I apologize if it has been made already.  I'd be surprised if it hasn't.

This idea came to me when I recently began using a program that is truly awful at managing its own CPU usage.  It's a backup application that ZIPs files and then copies those files to a specified destination (in my case, an FTP server).  The problem is that the ZIP creation process kills the CPU, while the copying hardly affects it.

What I'd like to happen is to have this application restrained while I was using the computer.  I don't want everything slowing to a near-freeze when I'm trying to use my browser, or whatever else I'm doing.  On the other hand, if I'm away, I want the backup application to use as much CPU as it can, to speed up the process.

I do realize that detecting inactivity is not the simplest thing in the world, and that the very definition of "inactivity" is a matter of opinion.  But even a basic mouse/keyboard use monitor would be a good start.

So...  Any thoughts?

Jeremy Collake

That's an excellent idea. Someone proposed it to me once before (you?). It actually isn't that difficult to detect how long the system has been idle, based on the last keyboard or mouse I/O. This is something I'll try to include in v4 for sure.
Software Engineer. Bitsum LLC.

mjdl

An excellent idea, but please--at the risk of stating something stunningly obvious ::)--make sure that the detection of keyboard/mouse activity also works when some process is monopolizing the CPU(s) and the process adjustments should kick back into action.

Jeremy Collake

Preliminary implementation of this feature request is complete. I am going to throw a beta out tonight with this new work. I haven't tested it much, or reviewed the code -- so be warned. I could have been tired and made a typo somewhere.

ProBalance will optionally disable after being active for X time (specified in minutes in the dialog, but ms control in the INI file). As soon as user activity resumes (mouse, keyboard, or other input device hit), ProBalance takes immediate effect.
Software Engineer. Bitsum LLC.

Jeremy Collake

This feature is available in v3.85.0 beta. I made a very, bad blog entry about it. More later. Its not well tested at this point, but there isn't that much to it so it is hopefully just fine. It will, of course, be fully tested and ready by v3.86+ final.

Software Engineer. Bitsum LLC.

Scott

I know this doesn't matter but the GUI could say simply "[ ] Disable ProBalance when PC is idle for: XXX minutes" instead of "Disable ProBalance when PC is idle  ...  Idle for: XXX minutes".  :)

Jeremy Collake

#6
Quote from: heterodox on May 29, 2010, 07:49:50 AM
I know this doesn't matter but the GUI could say simply "[ ] Disable ProBalance when PC is idle for: XXX minutes" instead of "Disable ProBalance when PC is idle  ...  Idle for: XXX minutes".  :)

Thanks ;). The only problem with embedding it in the sentence like that is these alternate languages. Since their string sizes vary, it makes it hard to do things like that using my current localization system. Regardless, I am going to redo that control, using a drop-down combo box to select the minutes. I will put 1,2,3,4,5.. then 5 minute increments up to 180. Of course, users can enter their own custom value too.

I've also added menu items to the latest internal build (screenshot attached). Note that I still have to re-arrange the menus, I always do that last.

Anyway, I gotta get back to work here.. I have a great new core engine feature I want to introduce to everyone. I am eager to get a beta out with it included.
Software Engineer. Bitsum LLC.

Scott

I guess you missed my question above.  (I've deleted it since I found the answer myself...)  I found TestLasso.exe and was able to test with that.  From looking at the log, it appears to me that the new option is working.

Jeremy Collake

Quote from: heterodox on May 29, 2010, 10:24:45 PM
I guess you missed my question above.  Well I found TestLasso.exe and was able to test with that.  From looking at the log, it appears to me that the new option is working.

Sorry I missed your question. I don't see it, so it must of been removed after you answered it yourself by finding TestLasso.

Anyway, thanks for testing.. I'm glad to hear it appears to work fine. The functional part was excessively simple, so it should be good. I fixed some minor GUI bugs related to it in the latest internal build, but nothing important.

Well, back to coding.. this next beta will be awesome.
Software Engineer. Bitsum LLC.