Moreton, Peter wrote:
> I'd like to preface this email with "IMHO" :-)
>
> Lot's of folk I have talked with about Prime95 have installed P95 on
> their desktop, and then de-installed it due to the performance impact it
> had on the machine as a whole. Even though the P95 process runs at a low
> scheduler priority, it still uses 100% of the available CPU
> (obviously!), and can leave XP 'gasping for breath'. Basically, the XP
> scheduler is not that clever at maintaining responsiveness of forground
> apps when low priority tasks exist that are compute-bound.
It may be the scheduler being non-preemptive, or it may not. It may
be that the cause is the use of virtual. When other processes are idle,
they get swapped to virtual, and then P95 can run full tilt. When the
higher priority process actually gets scheduled, it isn't in memory.
> I was wondering if George W might consider including some extra logic
> in the next version of P95 to cause it to 'back-off' the CPU under some
> circumstances. One might define a configuration flag to turn on this
> feature, say 'niceflag' meaning 'be nice to the other processes'.
>
> Various approaches could be used and I'll propose just one:
>
> if (keyboard OR mouse activity) AND (niceflag=true)
> {
> sleep 100msec // Let the forground app have
> unhindered access to the CPU for 1/10th sec
> }
If virtual swap is the problem, this won't help, as CPU is not the
problem, but rather disc bandwidth. If lack of preemption is the
problem, then this might help. Umm, 100ms seems like a long time
to me if preemption is the problem. But the granularity is probably
only 50ms anyway (due to the clock interrupt rate on the PC under
MS products), so my real time background may be showing :-)
> (OpenVMS hackers will remember a similar feature of the scheduler
> called "priority boosting" which occured when a task completed a
> terminal I/O. This feature maintained responsiveness to user
> applications when the CPU was saturated)
It would indeed help, if CPU saturation is the problem, and something
like this is worth a try.
Mike
--
p="p=%c%s%c;main(){printf(p,34,p,34);}";main(){printf(p,34,p,34);}
This message made from 100% recycled bits.
You have found the bank of Larn.
I can explain it for you, but I can't understand it for you.
I speak only for myself, and I am unanimous in that!
_______________________________________________
Prime mailing list
[email protected]
http://hogranch.com/mailman/listinfo/prime