Bug 548 - Severe performance issues on win32 while workrave is active; delayed/laggy input while running system-intensive apps
Status:
RESOLVED FIXED
Component:
Core :: Win32
Version:
1.8.2
Hardware:
PC Windows
Importance:
P4 major
Target Milestone:
---
Assignee:
Ray Satiro
URL:
Depends on:
Blocks:
Reported:
Aug 10 2006 23:54:11 UTC
by:
Kevin Gadd
Modified:
Mar 12 2008 05:30:35 UTC
CC List:
Ola Lindberg
IdWhoWhenSizeType
127Enable alternate activity monitor in Workrave 1.8.5 (nohook)
Ray SatiroMar 12 2008 05:30:35 UTC614application/octet-stream
WhoWhenWhatRemovedAdded
Rob CaelersAug 27 2007 14:03:56 UTCpriorityP2P4
Ray SatiroOct 1 2007 20:56:04 UTCassigned_toRaymond PennersRay Satiro
Ola LindbergNov 20 2007 18:58:44 UTCccOla Lindberg
Rob CaelersMar 10 2008 23:09:07 UTCstatusNEWRESOLVED
resolutionFIXED
Description
Kevin Gadd  Aug 10 2006 23:54:11 UTC
I've been using Workrave on my Win32 system at work for a couple weeks now. While Workrave is running, I experience some severe performance issues under certain circumstances, that seem to be due to the input event hook or whatever mechanism Workrave is using to track my input/block my input during breaks.

Normally, my system's input is fairly responsive, even while running Workrave. But if I start a particularly system-intensive application like a fullscreen DirectX game or a disk defragmenter or compiler, input events begin becoming delayed and everything starts to lag drastically. Text I input in will take as long as a second to actually be recieved by the destination application - sometimes *each character* will be delayed by as much as a second. This issue vanishes instantly if I exit workrave, and only seems to occur with applications that generate a large amount of CPU usage (and I assume are preventing Workrave from processing input events, and causing those events to stall).

Due to the fact that I have to run these system-intensive applications regularly for work, I've had to disable Workrave for now. :(

My system specs:
P4 2.4ghz / 2GB RAM
Windows XP Professional SP2
Radeon 9600, SoundMAX Integrated Audio
Comment 1
Ray Satiro  Oct 1 2007 20:56:04 UTC
Hello, thank you for your report. What you describe has been a problem for a small number of people, and we are working on it.

I encourage you to uninstall Workrave 1.8.2 and then install the latest release. Since 1.8.2 there have been tons of bug fixes.

Please try Workrave 1.8.5, and tell us if you experience the same problem.

http://superb-west.dl.sourceforge.net/sourceforge/workrave/workrave-win32-1.8.5-installer.exe
1b732b368fae346712f55c013fd86e93 *workrave-win32-1.8.5-installer.exe

Any feedback you can give us on whether this problem is still apparent for you in 1.8.5 is greatly appreciated.

Workrave 1.8.5 also has two alternative activity monitors, in addition to the default. To use either one of them instead, you must change your configuration manually (usually via the registry). The alternative monitors are considered experimental and we need help to test them. If you still have a problem, you're welcome to help us test.


Thanks,

Ray
Comment 2
Rob Caelers  Mar 10 2008 23:09:07 UTC
Workrave 1.8.5 solved an issue that could explain this laggy behavior on high cpu load. The next version of Workrave will use one of Ray's new activity monitors by default. This will even further reduce the performance impact caused by Workrave.
Comment 3
Ola Lindberg  Mar 11 2008 08:12:51 UTC
I had similar problems with Workrave 1.8.5 as well. Might be a good idea to reopen the issue?

Please tell me if there are anything I can do to help track down the error.

Best regards,

Ola Lindberg
Comment 4
Ray Satiro  Mar 12 2008 05:30:35 UTC
Created attachment 127
Enable alternate activity monitor in Workrave 1.8.5 (nohook)

Hi Ola,

>Please tell me if there are anything I can do to help track down the error.

The problem has to do with low-level global hooks. Low-level global hooking of a message (monitoring your mouse messages for example) forces all of that message through one queue/ When message processing stops due to dpcs or whatever it can cause sporadic freezes. We tried a number of things, like increasing thread priority and rewriting part of the hook processor but this problem will always exist due to the nature of global hooks. Although we can always improve on our code.

The registry file I've attached will enable an alternate low-level global hook monitor. Please let us know if you see a change in performance. There is also another monitor in 1.8.5 that can run without any hooks. But for now if you can please try this monitor, because I am curious if it will make a difference on your computer.

As Rob said a different monitor that does not require any hooks will be the default in 1.8.6