Discussion:
CPU usage
Fournier Eric
2006-01-13 16:27:46 UTC
Permalink
This ongoing problem occurs on the Mac similarly to Windows. I have
been developing in the "Tweak Project Window" because of it (which
behaves just fine, CPU wise). For my deployment scheme for Hermes, I
really want to remove the CProjectBuilder's Morphic window frame and
let Tweak take over the entire field-of-vision.

Some testing shows that the loop (I'm assuming that's the culprit
since I don't see similar behavior in the Tweak Project Window) can
freeze foreground at sporadic intervals (testing continues).

I see this one is not in Mantis, but I'm not sure if it is a Tweak
(or Squeak) issue (is Morphic mad to be shoved aside so completely? ;-).
Good question. I'll check it out, thanks for reporting.
Cheers,
- Andreas
Hello,Entering newly created empty "Tweak project", windows xp
task managershows CPU usage 100% and
stays that way. Why?VM 3.71, image 3.6662.image, all Tweak updates
loaded.
-- Vaidotas Didžbalis
_______________________________________________
Tweak mailing list
http://impara.de/mailman/listinfo/tweak
Eric Fournier
University of Minnesota
Office of Information Technology
emf-***@public.gmane.org
Steven Riggins
2006-01-13 17:06:24 UTC
Permalink
I see my CPU jump from 17% to over 40% by opened a Tweak Project Window.
Post by Fournier Eric
This ongoing problem occurs on the Mac similarly to Windows. I have
been developing in the "Tweak Project Window" because of it (which
behaves just fine, CPU wise). For my deployment scheme for Hermes,
I really want to remove the CProjectBuilder's Morphic window frame
and let Tweak take over the entire field-of-vision.
Some testing shows that the loop (I'm assuming that's the culprit
since I don't see similar behavior in the Tweak Project Window) can
freeze foreground at sporadic intervals (testing continues).
I see this one is not in Mantis, but I'm not sure if it is a Tweak
(or Squeak) issue (is Morphic mad to be shoved aside so
completely? ;-).
Good question. I'll check it out, thanks for reporting.
Cheers,
- Andreas
Hello,Entering newly created empty "Tweak project", windows xp
task managershows CPU usage 100% and
stays that way. Why?VM 3.71, image 3.6662.image, all Tweak updates
loaded.
-- Vaidotas Didžbalis
_______________________________________________
Tweak mailing list
http://impara.de/mailman/listinfo/tweak
Eric Fournier
University of Minnesota
Office of Information Technology
_______________________________________________
Tweak mailing list
http://impara.de/mailman/listinfo/tweak
Fournier Eric
2006-01-13 17:20:37 UTC
Permalink
The complaint here is about how CPU utilization pegs when a Tweak
Project is opened vis-a-vis a Tweak Project Window. Sure, CPU
utilization will spike in TPW when you move the mouse around, do
things. But it settles when the inputs are idle (it does on my 1.25
GHz Powerbook anyway). Not the case with TP: utilization goes to the
peg and stays there (on Mac OS X and Windows XP) all the time.

-- Eric
Post by Steven Riggins
I see my CPU jump from 17% to over 40% by opened a Tweak Project Window.
Bert Freudenberg
2006-01-13 17:55:06 UTC
Permalink
Post by Fournier Eric
The complaint here is about how CPU utilization pegs when a Tweak
Project is opened vis-a-vis a Tweak Project Window. Sure, CPU
utilization will spike in TPW when you move the mouse around, do
things. But it settles when the inputs are idle (it does on my 1.25
GHz Powerbook anyway). Not the case with TP: utilization goes to
the peg and stays there (on Mac OS X and Windows XP) all the time.
The Morphic main-loop gives up time to the OS if there isn't much to
do. CTweakProjectInMorphic>>run: doesn't. But it could:

run
| lastCycleTime pause currentTime wait |
lastCycleTime := Time millisecondClockValue.
pause := 50.
island project canvas: (CTransformCanvas on: Display).
island project world extent: Display extent.
[done] whileFalse:[
self checkForNewScreenSize.
island scheduler run.

currentTime := Time millisecondClockValue.
wait := lastCycleTime + pause - currentTime.
(wait > 0 and: [ wait <= pause ])
ifTrue: [ (Delay forMilliseconds: wait) wait ].
lastCycleTime := currentTime.
].

uiProcess == Processor activeProcess ifTrue:[uiProcess := nil].


- Bert -
Fournier Eric
2006-01-13 21:06:45 UTC
Permalink
Nice. I had to change the order (it refused to return to morphic if
the delay came after island>>scheduler>>run).

Thanks a bunch Bert!

-- Eric
Post by Bert Freudenberg
The Morphic main-loop gives up time to the OS if there isn't much
run
| lastCycleTime pause currentTime wait |
lastCycleTime := Time millisecondClockValue.
pause := 50.
island project canvas: (CTransformCanvas on: Display).
island project world extent: Display extent.
[done] whileFalse:[
self checkForNewScreenSize.
island scheduler run.
currentTime := Time millisecondClockValue.
wait := lastCycleTime + pause - currentTime.
(wait > 0 and: [ wait <= pause ])
ifTrue: [ (Delay forMilliseconds: wait) wait ].
lastCycleTime := currentTime.
].
uiProcess == Processor activeProcess ifTrue:[uiProcess := nil].
- Bert -
_______________________________________________
Tweak mailing list
http://impara.de/mailman/listinfo/tweak
Eric Fournier
2006-01-23 05:03:51 UTC
Permalink
The order is likely a red herring and does not matter. Successful
return to morphic from Tweak Project is about 25%, with 75% attempts
ending in complete Tweak hang.

--Eric
Post by Fournier Eric
Nice. I had to change the order (it refused to return to morphic if
the delay came after island>>scheduler>>run).
Thanks a bunch Bert!
-- Eric
Post by Bert Freudenberg
The Morphic main-loop gives up time to the OS if there isn't much
run
| lastCycleTime pause currentTime wait |
lastCycleTime := Time millisecondClockValue.
pause := 50.
island project canvas: (CTransformCanvas on: Display).
island project world extent: Display extent.
[done] whileFalse:[
self checkForNewScreenSize.
island scheduler run.
currentTime := Time millisecondClockValue.
wait := lastCycleTime + pause - currentTime.
(wait > 0 and: [ wait <= pause ])
ifTrue: [ (Delay forMilliseconds: wait) wait ].
lastCycleTime := currentTime.
].
uiProcess == Processor activeProcess ifTrue:[uiProcess := nil].
- Bert -
_______________________________________________
Tweak mailing list
http://impara.de/mailman/listinfo/tweak
_______________________________________________
Tweak mailing list
http://impara.de/mailman/listinfo/tweak
Eric Fournier
Java and Web Services
University of Minnesota Office of Information Technology
190 Shepherd Labs

emf-***@public.gmane.org

Loading...