GreendaleData.txt
Ken Pier, December 16, 1985 2:03:52 pm PST
December 11, 1985 6:27:34 pm PST
Experimental subject:
GreenDale.Interpress!3 55429 bytes 11-Dec-85 17:48:40 PST
Experiment: First GDNullTest. No Spy. KAP. December 11, 1985 6:31:39 pm PST
% @GDNullTest
[[///Commands/statistics on]]
Statistics on.
[[///Commands/date]]
Wednesday, December 11, 1985 6:24 pm PST
{0.04 seconds, 126 words}
[[///Commands/Run IPTestPackage]]
Previously loaded and run: []<>DIPPSY>IPTestPackage.bcd!3
{0.11 seconds, 538 words}
[[///Commands/← &c ← ImagerNullImpl.Create[]]]
^[class: 1675132B^, state: NIL, data: 7445222B^, propList: NIL]
{0.64 seconds, 16166 words}
[[///Commands/← &m ← IPExecImpl.Open[fileName: "GreenDale.Interpress", logProc: NIL, logData: NIL]]]
^[pages: 1, skeleton: 7311176B^, logProc: NIL, logData: NIL, impl: 11706152B^]
{2.36 seconds, 7922 words}
[[///Commands/← IPExecImpl.DoPage[master: &m, page: 1, context: &c]]]
{00:02:12 seconds, 1063136 words}
Now with the spy:
Open ImagerNullImpl.mesa and set spy break at 4208, 4308
% -- GDNullTest with Spy. KAP
% @GDNullTest
[[///Commands/statistics on]]
Statistics on.
[[///Commands/date]]
Wednesday, December 11, 1985 7:12 pm PST
{0.04 seconds, 106 words}
[[///Commands/Run IPTestPackage]]
Previously loaded and run: []<>DIPPSY>IPTestPackage.bcd!3
{0.10 seconds, 516 words}
[[///Commands/← &c ← ImagerNullImpl.Create[]]]
^[class: 1675132B^, state: NIL, data: 7450062B^, propList: NIL]
{1.22 seconds, 5098 words}
[[///Commands/← &m ← IPExecImpl.Open[fileName: "GreenDale.Interpress", logProc: NIL, logData: NIL]]]
^[pages: 1, skeleton: 7322716B^, logProc: NIL, logData: NIL, impl: 7523656B^]
{3.84 seconds, 31458 words}
[[///Commands/← IPExecImpl.DoPage[master: &m, page: 1, context: &c]]]

{00:03:19 seconds, 1069856 words, 545 page faults}
Cedar Spy of: December 11, 1985 7:08:59 pm PST.
Executed at: December 11, 1985 7:16:31 pm PST.
Measuring CPU usage.
(Waking up on vertical retrace. (80 times a second))

Start Breaks: NullDoSave [source: 4208].
Stop Breaks: NullDoSave [source: 4308].
1 start breaks encountered.
1 stop breaks encountered.

(Please wait-- processing log.)

Spy ran for 3 minutes 19 seconds.
Total wakeups = 15432 (77 per second).
Total page faults = 545 (2 per second).
Total words allocated = 1068274 (5368 per second).
Total words reclaimed = 1049596 (5274 per second).

Scheduled Process-Priority Summary:
processor idle = 332 (2.1%).
priority background = 1692 (10.9%).
priority normal = 13055 (84.5%).
priority foreground = 304 (1.9%).
priority pagefaultHigh = 46 (0.2%).
priority interrupt = 3 (0.1%).

Instructions (see SpyDoc.tioga for more information):
 Indentation is used to show containment.
 Periods are used to keep track of procedures at the same level of indentation.
 Exclamation points (!) are used to group together sets of disjoint procedures.
 Italics are used to indicate procedures with more than one parent.
 Bold is used to indicate procedures which actually had allocations or page faults.
 Impl.Proc = x, y (o%) (z%):
  x = counts in Impl.Proc.
  y = counts in procedures called from Impl.Proc.
  o = x/ total % (only displayed if > 1%).
  z = (x + y)/ total = % time IN THE CALL STACK.

Statistics on execution of Cedar Spy:
 Total samples read from log = 15432.
 3 SAMPLES WITH STACKS OF >= 75 FRAMES!
 Average stack depth = 104.
 No. modules allocated = 110.
 No. procedures allocated = 589.
 Total words allocated = 18466.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Breakdown of interesting processes.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Process 311B running at priority [normal, foreground, interrupt] = 12174 (78.8%).
CommandToolImpl.CommandToolBase = 12171 (78.8%).

Process 365B running at priority [background, normal] = 1792 (11.6%).
CollectorImpl.BackgroundCollector = 1792 (11.6%).

Process 313B running at priority [normal] = 512 (3.3%).
Watch.Watcher = 512 (3.3%).

Process 353B running at priority [foreground] = 180 (1.1%).
SpyLogImpl.WriteBuffer = 180 (1.1%).

Assorted processes = 442 (2.8%).

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Breakdown of interesting procedures.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

CommandToolImpl.CommandToolBase (1 refs) = 0, 12171 (78.8%).
! (19831) ProcessPropsImpl.PushPropList = 12171 (78.8%).
!
! ProcessPropsImpl.PushPropList (1 refs) = 0, 12171 (78.8%).
! (821) InterpreterPrivateImpl.inner = 12171 (78.8%).
!
! InterpreterPrivateImpl.inner (1 refs) = 0, 12171 (78.8%).
! (1667) EvaluateImpl.EvalNoProps = 12171 (78.8%).
!
! EvaluateImpl.EvalNoProps (1 refs) = 0, 12171 (78.8%).
! (5876) EvaluateImpl.EvalNode = 12171 (78.8%).
!
! EvaluateImpl.EvalNode (1 refs) = 0, 12171 (78.8%).
! (8677) EvaluateImpl.EvalApply = 12171 (78.8%).
!
! EvaluateImpl.EvalApply (1 refs) = 0, 12171 (78.8%).
! (27716) EvaluateImpl.DoApply = 12171 (78.8%).
!
! EvaluateImpl.DoApply (1 refs) = 0, 12171 (78.8%).
! (26043) EvaluateImpl.CallIt = 12171 (78.8%).
!
! EvaluateImpl.CallIt (1 refs) = 0, 12171 (78.8%).
! (25606) AMEventsImpl.Apply = 12171 (78.8%).
!
! AMEventsImpl.Apply (1 refs) = 0, 12171 (78.8%).
! (25386) IPExecImpl.DoPage = 12171 (78.8%).
!
! IPExecImpl.DoPage (1 refs) = 0, 12171 (78.8%).
! (14347) IPExecImpl.DoTopAction = 12171 (78.8%).
!
! IPExecImpl.DoTopAction (1 refs) = 0, 12171 (78.8%).
! (12699) IPErrorImpl.AddMaster = 12171 (78.8%).
!
! IPErrorImpl.AddMaster (1 refs) = 0, 12171 (78.8%).
! (530) ProcessPropsImpl.AddPropList = 12171 (78.8%).
!
! ProcessPropsImpl.AddPropList (1 refs) = 0, 12171 (78.8%).
! (600) IPExecImpl.save = 12171 (78.8%).
!
! IPExecImpl.save (1 refs) = 0, 12171 (78.8%).
! (12674) IPContextImpl.DoSaveAll = 12171 (78.8%).
!
! IPContextImpl.DoSaveAll (1 refs) = 0, 12171 (78.8%).
! (2383) ImagerImpl.DoSaveAll = 12171 (78.8%).
!
! ImagerImpl.DoSaveAll (1 refs) = 0, 12171 (78.8%).
! (1924) ImagerNullImpl.NullDoSave = 12171 (78.8%).
!
! ImagerNullImpl.NullDoSave (1 refs) = 17, 12154 (78.8%).
! (4259) IPExecImpl.call = 155 (1.0%).
! (4259) IPBaseImpl.action = 11912 (77.1%).
!
! IPExecImpl.Do (2 refs) = 6, 541 (3.5%).
! (10713) IPImagerImpl.ColorOperatorDo = 293 (1.8%).
! (10713) IPImagerImpl.ColorModelOperatorDo = 161 (1.0%).
!
! IPBaseImpl.action (1 refs) = 2, 11910 (77.1%).
! . (2737) IPExecImpl.CallInlineBody = 11910 (77.1%).
! .
! IPExecImpl.CallInlineBody (2 refs) = 5, 11988 (77.7%).
! . (9959) IPContextImpl.Call = 11988 (77.6%).
! .
! IPContextImpl.Call (2 refs) = 11, 12132 (78.6%).
! (1297) IPExecImpl.action = 12103 (78.4%).
!
! IPExecImpl.action (1 refs) = 2, 12101 (78.4%).
! (9932) IPExecImpl.ExecuteInlineBody = 12101 (78.4%).
!
! IPExecImpl.ExecuteInlineBody (1 refs) = 6, 12095 (78.4%).
! (9151) IPExecImpl.ExecuteToEndOfBody = 12058 (78.1%).
!
! IPExecImpl.ExecuteToEndOfBody (1 refs) = 926, 11132 (6.0%) (78.1%).
! . (7628) IPMasterImpl.GetToken = 2970 (19.2%).
! . (8126) IPExecImpl.FinishSequence = 2129 (13.7%).
! . (8285) IPApplyImpl.Apply = 4155 (26.9%).
! . (8342) IPStackImpl.PushNum = 346 (2.2%).
! . (8410) IPExecImpl.BeginSequence = 165 (1.0%).
! . (8410) IPExecImpl.ExtendSequence = 1366 (8.8%).
! .
! . IPApplyImpl.Apply (1 refs) = 76, 4079 (26.9%).
! . ! (4510) IPBaseImpl.ApplyMAKESIMPLECO = 155 (1.0%).
! . ! (4510) IPBaseImpl.ApplyDO = 501 (3.2%).
! . ! (4510) IPImageImpl.ApplyFINDCOLORMODELOPERATOR = 477 (3.0%).
! . ! (4510) IPBaseImpl.ApplyMAKEVEC = 585 (3.7%).
! . ! (4510) IPBaseImpl.ApplyFSET = 629 (4.0%).
! . ! (4510) IPImageImpl.ApplyCURVETO = 877 (5.6%).
! . ! (4510) IPImageImpl.ApplyMASKSTROKE = 239 (1.5%).
! . !
! . ! IPImageImpl.ApplyCURVETO (1 refs) = 81, 796 (5.6%).
! . ! ! (14505) IPImageImpl.PopVec = 251 (1.6%).
! . ! ! (14529) IPImageImpl.PopVec = 241 (1.5%).
! . ! ! (14553) IPStackImpl.ExtendTrajectory = 167 (1.0%).
! . ! !
! . ! IPBaseImpl.ApplyFSET (1 refs) = 6, 623 (4.0%).
! . ! ! (2080) IPContextImpl.FSet = 612 (3.9%).
! . ! !
! . ! ! IPContextImpl.FSet (1 refs) = 14, 598 (3.9%).
! . ! ! (2027) IPVectorImpl.ArrayFromVector = 598 (3.8%).
! . ! !
! . ! ! IPVectorImpl.ArrayFromVector (1 refs) = 202, 396 (3.8%).
! . ! ! (6681) IPVectorImpl.Get = 356 (2.3%).
! . ! !
! . ! IPBaseImpl.ApplyMAKEVEC (1 refs) = 24, 561 (3.7%).
! . ! ! (1148) IPVectorImpl.MakeVec = 423 (2.7%).
! . ! !
! . ! IPBaseImpl.ApplyDO (1 refs) = 11, 490 (3.2%).
! . ! ! (2326) IPExecImpl.Do = 460 (2.9%).
! . ! !
! . ! IPImageImpl.ApplyFINDCOLORMODELOPERATOR (1 refs) = 8, 469 (3.0%).
! . ! . (12420) IPImagerImpl.FindColorModelOperator = 418 (2.7%).
! . ! .
! . ! IPImageImpl.PopVec (6 refs) = 175, 500 (4.3%).
! . ! . (3432) IPStackImpl.PopReal = 255 (1.6%).
! . ! . (3453) IPStackImpl.PopReal = 245 (1.5%).
! . ! .
! . ! IPStackImpl.PopReal (5 refs) = 351, 162 (2.2%) (3.3%).
! . !
! . IPExecImpl.FinishSequence (1 refs) = 141, 1988 (13.7%).
! . ! (6213) IPExecImpl.DoIdentifier = 280 (1.8%).
! . ! (6301) IPExecImpl.DoRational = 1708 (11.0%).
! . !
! . ! IPExecImpl.DoRational (1 refs) = 443, 1265 (2.8%) (11.0%).
! . ! (1982) IPMasterImpl.IntFromSequenceData = 392 (2.5%).
! . ! (2054) IPMasterImpl.IntFromSequenceData = 372 (2.4%).
! . ! (2167) IPStackImpl.PushNum = 250 (1.6%).
! . ! (2210) IPStackImpl.PushNum = 251 (1.6%).
! . !
! . ! IPMasterImpl.IntFromSequenceData (2 refs) = 764 (4.9%).
! . !
! . IPExecImpl.ExtendSequence (1 refs) = 335, 1031 (2.1%) (8.8%).
! . . (5622) IOCommonImpl.GetBlock = 1031 (6.6%).
! . .
! . . IOCommonImpl.GetBlock (1 refs) = 117, 914 (6.6%).
! . . (10513) FileStreamImpl.GetBlock = 914 (5.9%).
! . .
! . . FileStreamImpl.GetBlock (1 refs) = 504, 410 (3.2%) (5.9%).
! . . (5146) InstructionsImpl.ByteBlt = 393 (2.5%).
! . .
! . IPStackImpl.PushNum (3 refs) = 274, 573 (5.4%).
! . (2096) IPStackImpl.PushStack = 429 (2.7%).
! .
! IPMasterImpl.GetToken (3 refs) = 1049, 2057 (6.7%) (20.1%).
! . (19025) IOCommonImpl.GetIndex = 673 (4.3%).
! . (19059) IOCommonImpl.GetChar = 754 (4.8%).
! . (19113) IOCommonImpl.GetChar = 227 (1.4%).
! . (19373) IOCommonImpl.GetChar = 255 (1.6%).
! .
! . IOCommonImpl.GetChar (4 refs) = 395, 989 (2.5%) (8.9%).
! . (10341) FileStreamImpl.GetChar = 989 (6.4%).
! .
! . FileStreamImpl.GetChar (1 refs) = 986, 3 (6.3%) (6.4%).
! .
! IOCommonImpl.GetIndex (2 refs) = 276, 407 (4.4%).
! (12265) FileStreamImpl.GetIndex = 407 (2.6%).
!
CollectorImpl.BackgroundCollector (1 refs) = 0, 1792 (11.6%).
! (4817) ZCTImpl.ScanTheFrameHeap = 572 (3.7%).
! (4849) ZCTImpl.MapReclaimableObjects = 1135 (7.3%).
!
! ZCTImpl.MapReclaimableObjects (1 refs) = 39, 1096 (7.3%).
! ! (5290) ReclaimerImpl.Reclaim = 926 (6.0%).
! !
! ! ReclaimerImpl.Reclaim (1 refs) = 334, 592 (2.1%) (6.0%).
! ! (2599) RCMapWalkerImpl.DoFREEify = 261 (1.6%).
! ! (2617) AllocatorImpl.FreeObject = 272 (1.7%).
! !
! ZCTImpl.ScanTheFrameHeap (1 refs) = 0, 572 (3.7%).
! (4440) RTFrameHeapSnapshotImpl.MapUncountedBodies = 491 (3.1%).
!
! RTFrameHeapSnapshotImpl.MapUncountedBodies (1 refs) = 20, 471 (3.1%).
! (1207) ZCTImpl.ConservativeScanner = 471 (3.0%).
!
! ZCTImpl.ConservativeScanner (1 refs) = 352, 119 (2.2%) (3.0%).
!
Watch.Watcher (1 refs) = 8, 504 (3.3%).
. (28483) VMAllocImpl.Allocate = 181 (1.1%).
.
AllocatorImpl.NewSystemObject (17 refs) = 422, 260 (2.7%) (4.4%).
(9534) StorageAccountingImpl.ConsiderCollection = 256 (1.6%).


The remaining procedures had less than 462 wakeups.
Now making a PD file for the 400 spot per inch color printer. Monitor for several minutes with Spy.
% InterpressToPD GreendaleAborted.PD.Color400 ← GreenDale.Interpress color400
Cedar Spy of: December 12, 1985 10:51:34 am PST.
Executed at: December 12, 1985 1:44:30 pm PST.
Measuring CPU usage.
(Waking up on vertical retrace. (80 times a second))

Start Breaks: InterpressToPDAction [source: 10600].
Stop Breaks:
1 start breaks encountered.
0 stop breaks encountered.

(Please wait-- processing log.)

Spy ran for 2 minutes 6 seconds.
Total wakeups = 9784 (77 per second).
Total page faults = 546 (4 per second).
Total words allocated = 357023 (2833 per second).
Total words reclaimed = 326300 (2589 per second).

Scheduled Process-Priority Summary:
processor idle = 358 (3.6%).
priority background = 392 (4.0%).
priority normal = 8799 (89.9%).
priority foreground = 195 (1.9%).
priority pagefaultLow = 1 (0.1%).
priority pagefaultHigh = 39 (0.3%).

Instructions (see SpyDoc.tioga for more information):
 Indentation is used to show containment.
 Periods are used to keep track of procedures at the same level of indentation.
 Exclamation points (!) are used to group together sets of disjoint procedures.
 Italics are used to indicate procedures with more than one parent.
 Bold is used to indicate procedures which actually had allocations or page faults.
 Impl.Proc = x, y (o%) (z%):
  x = counts in Impl.Proc.
  y = counts in procedures called from Impl.Proc.
  o = x/ total % (only displayed if > 1%).
  z = (x + y)/ total = % time IN THE CALL STACK.

Statistics on execution of Cedar Spy:
 Processed log in 312.710 seconds. Total samples read from log = 9784.
 Average stack depth = 109.
 No. modules allocated = 124.
 No. procedures allocated = 709.
 Total words allocated = 22455.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Breakdown of interesting processes.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Process 311B running at priority [normal, foreground] = 8152 (83.3%).
CommandToolImpl.CommandToolBase = 8152 (83.3%).

Process 365B running at priority [background, normal] = 538 (5.4%).
CollectorImpl.BackgroundCollector = 538 (5.4%).

Process 313B running at priority [normal] = 335 (3.4%).
Watch.Watcher = 335 (3.4%).

Process 353B running at priority [foreground] = 121 (1.2%).
SpyLogImpl.WriteBuffer = 121 (1.2%).

Assorted processes = 280 (2.8%).

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Breakdown of interesting procedures.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

CommandToolImpl.CommandToolBase (1 refs) = 0, 8152 (83.3%).
! (19831) ProcessPropsImpl.PushPropList = 8152 (83.3%).
!
! ProcessPropsImpl.PushPropList (1 refs) = 0, 8152 (83.3%).
! (821) CommandToolImpl.inner = 8152 (83.3%).
!
! CommandToolImpl.inner (1 refs) = 0, 8152 (83.3%).
! (19737) ReadEvalPrintImpl.MainLoop = 8152 (83.3%).
!
! ReadEvalPrintImpl.MainLoop (1 refs) = 0, 8152 (83.3%).
! (2848) ReadEvalPrintImpl.inner = 8152 (83.3%).
!
! ReadEvalPrintImpl.inner (1 refs) = 0, 8152 (83.3%).
! (2653) ReadEvalPrintImpl.MainLoopInternal = 8152 (83.3%).
!
! ReadEvalPrintImpl.MainLoopInternal (1 refs) = 0, 8152 (83.3%).
! (4783) CommandToolImpl.EachCommand = 8152 (83.3%).
!
! CommandToolImpl.EachCommand (1 refs) = 0, 8152 (83.3%).
! (8105) CommandToolImpl.ExecuteCommand = 8152 (83.3%).
!
! CommandToolImpl.ExecuteCommand (1 refs) = 0, 8152 (83.3%).
! (12982) CommandToolImpl.Base = 8152 (83.3%).
!
! CommandToolImpl.Base (1 refs) = 0, 8152 (83.3%).
! (12462) CommandToolImpl.innerExecute = 8152 (83.3%).
!
! CommandToolImpl.innerExecute (1 refs) = 0, 8152 (83.3%).
! (11765) PrintFileConvertImpl.Command = 8152 (83.3%).
!
! PrintFileConvertImpl.Command (1 refs) = 0, 8152 (83.3%).
! (16262) PrintFileConvertImpl.InterpressToPDAction = 8152 (83.3%).
!
! PrintFileConvertImpl.InterpressToPDAction (1 refs) = 0, 8152 (83.3%).
! (10660) ImagerPDImpl.5110B = 8152 (83.3%).
!
! ImagerPDImpl.5110B (1 refs) = 0, 8152 (83.3%).
! ImagerImpl.DoSaveAll = 8152 (83.3%).
!
! ImagerImpl.DoSaveAll (1 refs) = 0, 8152 (83.3%).
! (1924) ImagerStateImpl.StateDoSave = 8047 (82.2%).
! (1924) ImagerMaskCaptureImpl.MyDoSave = 105 (1.0%).
!
! ImagerStateImpl.StateDoSave (2 refs) = 5, 8147 (83.3%).
! (2567) IPExecImpl.call = 148 (1.5%).
! (2567) IPBaseImpl.action = 7854 (80.2%).
! (2567) ImagerFontImpl.action = 105 (1.0%).
!
! IPBaseImpl.action (1 refs) = 0, 7854 (80.2%).
! . (2737) IPExecImpl.CallInlineBody = 7854 (80.2%).
! .
! IPExecImpl.CallInlineBody (2 refs) = 2, 7869 (80.4%).
! . (9959) IPContextImpl.Call = 7869 (80.4%).
! .
! IPContextImpl.Call (2 refs) = 3, 8014 (81.9%).
! . (1297) IPExecImpl.action = 8005 (81.8%).
! .
! . IPExecImpl.action (1 refs) = 2, 8003 (81.8%).
! . (9932) IPExecImpl.ExecuteInlineBody = 8003 (81.7%).
! .
! . IPExecImpl.ExecuteInlineBody (1 refs) = 2, 8001 (81.7%).
! . (9151) IPExecImpl.ExecuteToEndOfBody = 7993 (81.6%).
! .
! . IPExecImpl.ExecuteToEndOfBody (1 refs) = 194, 7799 (81.6%).
! . . (7628) IPMasterImpl.GetToken = 621 (6.3%).
! . . (8126) IPExecImpl.FinishSequence = 438 (4.4%).
! . . (8285) IPApplyImpl.Apply = 6364 (65.0%).
! . . (8410) IPExecImpl.ExtendSequence = 262 (2.6%).
! . .
! . . IPApplyImpl.Apply (1 refs) = 13, 6351 (65.0%).
! . . ! (4510) IPBaseImpl.ApplyMAKESIMPLECO = 146 (1.4%).
! . . ! (4510) IPBaseImpl.ApplyFSET = 105 (1.0%).
! . . ! (4510) IPBaseImpl.ApplyDO = 101 (1.0%).
! . . ! (4510) IPBaseImpl.ApplyMAKEVEC = 107 (1.0%).
! . . ! (4510) IPImageImpl.ApplyMASKFILL = 297 (3.0%).
! . . ! (4510) IPImageImpl.ApplyCURVETO = 176 (1.7%).
! . . ! (4510) IPImageImpl.ApplyMASKSTROKECLOSED = 652 (6.6%).
! . . ! (4510) IPImageImpl.ApplyMASKSTROKE = 4561 (46.6%).
! . . !
! . . ! IPImageImpl.ApplyMASKSTROKE (1 refs) = 0, 4561 (46.6%).
! . . ! ! (17569) IPImageImpl.MaskStroke = 4561 (46.6%).
! . . ! !
! . . ! IPImageImpl.ApplyMASKSTROKECLOSED (1 refs) = 1, 651 (6.6%).
! . . ! ! (17660) IPImageImpl.MaskStroke = 651 (6.6%).
! . . ! !
! . . ! IPImageImpl.ApplyMASKFILL (1 refs) = 1, 296 (3.0%).
! . . ! . (15851) ImagerImpl.MaskFill = 295 (3.0%).
! . . ! .
! . . ! IPImageImpl.MaskStroke (2 refs) = 3, 5209 (53.2%).
! . . ! (17379) ImagerImpl.MaskStroke = 5201 (53.1%).
! . . !
! . . ! ImagerImpl.MaskStroke (1 refs) = 2, 5199 (53.1%).
! . . ! (11395) ImagerRasterImpl.RasterMaskStroke = 5199 (53.1%).
! . . !
! . . ! ImagerRasterImpl.RasterMaskStroke (1 refs) = 2, 5197 (53.1%).
! . . ! (15692) ImagerRasterImpl.MaskRuns = 5174 (52.8%).
! . . !
! . . IPExecImpl.FinishSequence (1 refs) = 27, 411 (4.4%).
! . . (6301) IPExecImpl.DoRational = 347 (3.5%).
! . .
! . . IPExecImpl.DoRational (1 refs) = 100, 247 (3.5%).
! . .
! . IPMasterImpl.GetToken (3 refs) = 256, 480 (2.6%) (7.5%).
! . (19025) IOCommonImpl.GetIndex = 138 (1.4%).
! . (19059) IOCommonImpl.GetChar = 172 (1.7%).
! .
! . IOCommonImpl.GetChar (4 refs) = 96, 246 (3.4%).
! . (10341) FileStreamImpl.GetChar = 246 (2.5%).
! .
! ImagerImpl.MaskFill (2 refs) = 0, 400 (4.0%).
! . (9498) ImagerRasterImpl.RasterMaskFill = 295 (3.0%).
! . (9498) ImagerMaskCaptureImpl.MyMaskFill = 105 (1.0%).
! .
! . ImagerRasterImpl.RasterMaskFill (2 refs) = 0, 400 (4.0%).
! . (11999) ImagerRasterImpl.MaskRuns = 372 (3.8%).
! .
! ImagerRasterImpl.MaskRuns (2 refs) = 0, 5546 (56.6%).
! (11162) ImagerRasterImpl.RunsFromPath = 5546 (56.6%).
!
! ImagerRasterImpl.RunsFromPath (1 refs) = 5, 5541 (56.6%).
! (9611) ImagerScanConverterImpl.CreatePath = 4188 (42.8%).
! (10728) ImagerRasterImpl.maskRunsAction = 1348 (13.7%).
!
! ImagerScanConverterImpl.CreatePath (1 refs) = 20, 4168 (42.8%).
! ! (16408) ImagerPathImpl.Transform = 4119 (42.0%).
! !
! ! ImagerPathImpl.Transform (1 refs) = 7, 4112 (42.0%).
! ! (6865) IPImageImpl.path = 102 (1.0%).
! ! (6865) IPImageImpl.path = 3865 (39.5%).
! !
! ! IPImageImpl.path (1 refs) = 1, 3864 (39.5%).
! ! . (17250) IPStackImpl.DoTopPath = 3864 (39.4%).
! ! .
! ! IPStackImpl.DoTopPath (2 refs) = 60, 3906 (40.5%).
! ! . (8349) ImagerPathImpl.TransformLineTo = 158 (1.6%).
! ! . (8463) ImagerPathImpl.TransformCurveTo = 3740 (38.2%).
! ! .
! ! ImagerPathImpl.TransformCurveTo (2 refs) = 96, 3711 (38.9%).
! ! . (6090) ImagerScanConverterImpl.Curve = 1298 (13.2%).
! ! . (6175) ImagerScanConverterImpl.Curve = 107 (1.0%).
! ! . (6175) ImagerStrokeImpl.Curve = 2239 (22.8%).
! ! .
! ! . ImagerStrokeImpl.Curve (1 refs) = 114, 2125 (22.8%).
! ! . ! (8275) ImagerStrokeImpl.TraverseCubic = 817 (8.3%).
! ! . ! (8375) ImagerStrokeImpl.TraverseCubic = 791 (8.0%).
! ! . !
! ! . ! ImagerStrokeImpl.TraverseCubic (2 refs) = 273, 1335 (2.7%) (16.4%).
! ! . ! (4414) ImagerStrokeImpl.ParallelTo = 367 (3.7%).
! ! . ! (4468) ImagerStrokeImpl.ParallelTo = 331 (3.3%).
! ! . ! (4828) ImagerStrokeImpl.SubDivide = 392 (4.0%).
! ! . ! (4993) ImagerPathImpl.TransformLineTo = 152 (1.5%).
! ! . !
! ! . ! ImagerStrokeImpl.ParallelTo (2 refs) = 208, 490 (2.1%) (7.1%).
! ! . ! ! (3997) ImagerStrokeImpl.RealRoots = 325 (3.3%).
! ! . ! !
! ! . ! ! ImagerStrokeImpl.RealRoots (1 refs) = 216, 109 (2.2%) (3.3%).
! ! . ! ! (3093) RealFnsImpl.SqRt = 109 (1.1%).
! ! . ! !
! ! . ! ImagerStrokeImpl.SubDivide (1 refs) = 127, 265 (4.0%).
! ! . !
! ! . ImagerScanConverterImpl.Curve (2 refs) = 60, 1345 (14.3%).
! ! . (16014) ImagerScanConverterImpl.AppendBezier = 1345 (13.7%).
! ! .
! ! . ImagerScanConverterImpl.AppendBezier (1 refs) = 277, 1068 (2.8%) (13.7%).
! ! . (15258) ImagerScanConverterImpl.AppendMonotoneBezier = 109 (1.1%).
! ! . (15293) ImagerScanConverterImpl.AppendMonotoneBezier = 719 (7.3%).
! ! .
! ! . ImagerScanConverterImpl.AppendMonotoneBezier (6 refs) = 284, 639 (2.9%) (9.4%).
! ! . (13817) ImagerScanConverterImpl.AppendMonotoneShortPiece = 639 (6.5%).
! ! .
! ! . ImagerScanConverterImpl.AppendMonotoneShortPiece (1 refs) = 257, 382 (2.6%) (6.5%).
! ! . (9432) ImagerScanConverterImpl.IterationsUntilFlat = 250 (2.5%).
! ! . (9515) ImagerScanConverterImpl.AppendSegment = 104 (1.0%).
! ! .
! ! ImagerPathImpl.TransformLineTo (9 refs) = 42, 397 (4.4%).
! ! . (5944) ImagerScanConverterImpl.Line = 299 (3.0%).
! ! .
! ! ImagerScanConverterImpl.Line (3 refs) = 138, 256 (4.0%).
! ! . (15658) ImagerScanConverterImpl.AppendSegment = 256 (2.6%).
! ! .
! ! ImagerScanConverterImpl.AppendSegment (2 refs) = 320, 40 (3.2%) (3.6%).
! !
! ImagerRasterImpl.maskRunsAction (1 refs) = 1, 1347 (13.7%).
! (11063) ImagerPDImpl.13700B = 1332 (13.6%).
!
! ImagerPDImpl.13700B (1 refs) = 3, 1329 (13.6%).
! . PDFileWriterImpl.MaskRunGroup = 1329 (13.5%).
! .
! . PDFileWriterImpl.MaskRunGroup (1 refs) = 5, 1324 (13.5%).
! . (16273) ImagerRasterImpl.runs = 1296 (13.2%).
! .
! ImagerRasterImpl.runs (2 refs) = 4, 1305 (13.3%).
! (9976) ImagerScanConverterImpl.ConvertToRuns = 1305 (13.3%).
!
! ImagerScanConverterImpl.ConvertToRuns (1 refs) = 1, 1304 (13.3%).
! (24103) ImagerScanConverterImpl.Convert = 1304 (13.3%).
!
! ImagerScanConverterImpl.Convert (1 refs) = 384, 920 (3.9%) (13.3%).
! (22288) ImagerScanConverterImpl.FValueFor = 276 (2.8%).
! (22595) ImagerScanConverterImpl.Result = 560 (5.7%).
!
! ImagerScanConverterImpl.Result (1 refs) = 137, 423 (5.7%).
! (23626) ImagerScanConverterImpl.ShellSort = 157 (1.6%).
! (24026) PDFileWriterImpl.CaptureRun = 265 (2.7%).
!
CollectorImpl.BackgroundCollector (1 refs) = 0, 538 (5.4%).
! (4817) ZCTImpl.ScanTheFrameHeap = 199 (2.0%).
! (4849) ZCTImpl.MapReclaimableObjects = 310 (3.1%).
!
! ZCTImpl.MapReclaimableObjects (1 refs) = 17, 293 (3.1%).
! (5290) ReclaimerImpl.Reclaim = 236 (2.4%).
!
Watch.Watcher (1 refs) = 4, 331 (3.4%).
(28483) VMAllocImpl.Allocate = 116 (1.1%).


The remaining procedures had less than 291 wakeups.
Test for floating point microcode
% -- Running with normal FP microcode, all other viewers except Spy destroyed, Spy watching all CPU activity
%
run spy; spy; statistics on; date; interpresstopd; -- start spy
% interpresstopd GreenDaleOriginal.PD.Color400 ← GreenDaleOriginal.IP color400
Monday, December 16, 1985 11:13 am PST
% interpresstopd GreenDaleOriginal.PD.Color400 ← GreenDaleOriginal.IP color400
Reading []<>DIPPSY>GreenDaleOriginal.IP!1 . . . [1] []<>DIPPSY>GreenDaleOriginal.PD.Color400!4 written.
{00:05:08 seconds, 769045 words, 555 page faults}
==========================================================
Cedar Spy of: December 12, 1985 10:51:34 am PST.
Executed at: December 16, 1985 11:18:52 am PST.
Measuring CPU usage.
(Waking up on vertical retrace. (80 times a second))

(Please wait-- processing log.)

Spy ran for 5 minutes 19 seconds.
Total wakeups = 24762 (77 per second).
Total page faults = 555 (1 per second).
Total words allocated = 769641 (2412 per second).
Total words reclaimed = 657442 (2060 per second).

Scheduled Process-Priority Summary:
processor idle = 9462 (38.2%).
priority background = 870 (3.5%).
priority normal = 14050 (56.7%).
priority foreground = 314 (1.2%).
priority pagefaultLow = 1 (0.1%).
priority pagefaultHigh = 65 (0.2%).

Instructions (see SpyDoc.tioga for more information):
 Indentation is used to show containment.
 Periods are used to keep track of procedures at the same level of indentation.
 Exclamation points (!) are used to group together sets of disjoint procedures.
 Italics are used to indicate procedures with more than one parent.
 Bold is used to indicate procedures which actually had allocations or page faults.
 Impl.Proc = x, y (o%) (z%):
  x = counts in Impl.Proc.
  y = counts in procedures called from Impl.Proc.
  o = x/ total % (only displayed if > 1%).
  z = (x + y)/ total = % time IN THE CALL STACK.

Statistics on execution of Cedar Spy:
 Processed log in 202.81 seconds. Total samples read from log = 24762.
 Average stack depth = 33.
 No. modules allocated = 132.
 No. procedures allocated = 672.
 Total words allocated = 21474.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Breakdown of interesting processes.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Process 311B running at priority [normal, foreground] = 13809 (55.7%).
CommandToolImpl.CommandToolBase = 13809 (55.7%).

Process 365B running at priority [background, normal] = 1018 (4.1%).
CollectorImpl.BackgroundCollector = 1018 (4.1%).

Assorted processes = 473 (1.9%).

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Breakdown of interesting procedures.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

CommandToolImpl.CommandToolBase (1 refs) = 0, 13809 (55.7%).
! (19831) ProcessPropsImpl.PushPropList = 13809 (55.7%).
!
! ProcessPropsImpl.PushPropList (1 refs) = 0, 13809 (55.7%).
! (821) CommandToolImpl.inner = 13809 (55.7%).
!
! CommandToolImpl.inner (1 refs) = 0, 13809 (55.7%).
! (19737) ReadEvalPrintImpl.MainLoop = 13809 (55.7%).
!
! ReadEvalPrintImpl.MainLoop (1 refs) = 0, 13809 (55.7%).
! (2848) ReadEvalPrintImpl.inner = 13809 (55.7%).
!
! ReadEvalPrintImpl.inner (1 refs) = 0, 13809 (55.7%).
! (2653) ReadEvalPrintImpl.MainLoopInternal = 13809 (55.7%).
!
! ReadEvalPrintImpl.MainLoopInternal (1 refs) = 0, 13809 (55.7%).
! (4783) CommandToolImpl.EachCommand = 13808 (55.7%).
!
! CommandToolImpl.EachCommand (1 refs) = 1, 13807 (55.7%).
! (8105) CommandToolImpl.ExecuteCommand = 13806 (55.7%).
!
! CommandToolImpl.ExecuteCommand (1 refs) = 0, 13806 (55.7%).
! (12982) CommandToolImpl.Base = 13806 (55.7%).
!
! CommandToolImpl.Base (1 refs) = 0, 13806 (55.7%).
! (12462) CommandToolImpl.innerExecute = 13806 (55.7%).
!
! CommandToolImpl.innerExecute (1 refs) = 0, 13806 (55.7%).
! (11765) PrintFileConvertImpl.Command = 13806 (55.7%).
!
! PrintFileConvertImpl.Command (1 refs) = 0, 13806 (55.7%).
! (17220) PrintFileConvertImpl.InterpressToPDAction = 13804 (55.7%).
!
! PrintFileConvertImpl.InterpressToPDAction (1 refs) = 0, 13804 (55.7%).
! (11618) ImagerPDImpl.DoPage = 13628 (55.0%).
!
! ImagerPDImpl.DoPage (1 refs) = 0, 13628 (55.0%).
! (11827) ImagerImpl.DoSaveAll = 13044 (52.6%).
! (11976) PDFileWriterImpl.EndPage = 584 (2.3%).
!
CollectorImpl.BackgroundCollector (1 refs) = 0, 1018 (4.1%).
. (4817) ZCTImpl.ScanTheFrameHeap = 358 (1.4%).
. (4849) ZCTImpl.MapReclaimableObjects = 577 (2.3%).
.
ImagerImpl.DoSaveAll (2 refs) = 0, 13059 (52.7%).
(1953) ImagerStateImpl.StateDoSave = 12935 (52.2%).

ImagerStateImpl.StateDoSave (2 refs) = 2, 13057 (52.7%).
(2736) IPBaseImpl.action = 12866 (51.9%).

IPBaseImpl.action (1 refs) = 1, 12865 (51.9%).
. (4874) IPExecImpl.CallInlineBody = 12865 (51.9%).
.
. IPExecImpl.CallInlineBody (1 refs) = 1, 12864 (51.9%).
. (10232) IPContextImpl.Call = 12864 (51.9%).
.
IPContextImpl.Call (2 refs) = 6, 12877 (52.0%).
. (684) IPExecImpl.action = 12869 (51.9%).
.
. IPExecImpl.action (1 refs) = 1, 12868 (51.9%).
. (10205) IPExecImpl.ExecuteInlineBody = 12868 (51.9%).
.
. IPExecImpl.ExecuteInlineBody (1 refs) = 0, 12868 (51.9%).
. (9412) IPExecImpl.ExecuteToEndOfBody = 12861 (51.9%).
.
. IPExecImpl.ExecuteToEndOfBody (1 refs) = 150, 12711 (51.9%).
. (7989) IPMasterImpl.GetToken = 464 (1.8%).
. (8513) IPExecImpl.FinishSequence = 404 (1.6%).
. (8573) IPApplyImpl.Apply = 11579 (46.7%).
.
. IPApplyImpl.Apply (1 refs) = 9, 11570 (46.7%).
. (5228) IPImageImpl.ApplyMASKFILL = 644 (2.6%).
. (5228) IPImageImpl.ApplyMASKSTROKECLOSED = 914 (3.6%).
. (5228) IPImageImpl.ApplyMASKSTROKE = 9378 (37.8%).
.
. IPImageImpl.ApplyMASKSTROKE (1 refs) = 2, 9376 (37.8%).
. ! (14245) ImagerImpl.MaskStrokeTrajectory = 9375 (37.8%).
. !
. IPImageImpl.ApplyMASKSTROKECLOSED (1 refs) = 0, 914 (3.6%).
. . (14402) ImagerImpl.MaskStrokeTrajectory = 914 (3.6%).
. .
. ImagerImpl.MaskStrokeTrajectory (2 refs) = 0, 10289 (41.5%).
. (11603) ImagerRasterImpl.RasterMaskStroke = 10289 (41.5%).
.
. ImagerRasterImpl.RasterMaskStroke (1 refs) = 1, 10288 (41.5%).
. (15544) ImagerRasterImpl.MaskRuns = 10244 (41.3%).
.
ImagerRasterImpl.RasterMaskFill (2 refs) = 0, 768 (3.1%).
. (11861) ImagerRasterImpl.MaskRuns = 749 (3.0%).
.
ImagerRasterImpl.MaskRuns (2 refs) = 1, 10992 (44.3%).
(11027) ImagerRasterImpl.RunsFromPath = 10992 (44.3%).

ImagerRasterImpl.RunsFromPath (1 refs) = 2, 10990 (44.3%).
(9473) ImagerScanConverterImpl.CreatePath = 4125 (16.6%).
(10594) ImagerRasterImpl.maskRunsAction = 6862 (27.7%).

ImagerRasterImpl.maskRunsAction (1 refs) = 1, 6861 (27.7%).
! (10928) ImagerPDImpl.MaskRuns = 6817 (27.5%).
!
! ImagerPDImpl.MaskRuns (1 refs) = 3, 6814 (27.5%).
! . (26936) PDFileWriterImpl.MaskRunGroup = 6814 (27.5%).
! .
! . PDFileWriterImpl.MaskRunGroup (1 refs) = 3, 6811 (27.5%).
! . (16273) ImagerRasterImpl.runs = 6790 (27.4%).
! .
! ImagerRasterImpl.runs (2 refs) = 1, 6818 (27.5%).
! (9838) ImagerScanConverterImpl.ConvertToRuns = 6818 (27.5%).
!
! ImagerScanConverterImpl.ConvertToRuns (1 refs) = 1, 6817 (27.5%).
! (24252) ImagerScanConverterImpl.Convert = 6817 (27.5%).
!
! ImagerScanConverterImpl.Convert (1 refs) = 1052, 5765 (4.2%) (27.5%).
! (20138) ImagerScanConverterImpl.InitialBucketTable = 278 (1.1%).
! (22431) ImagerScanConverterImpl.FValueFor = 2385 (9.6%).
! (22738) ImagerScanConverterImpl.Result = 3041 (12.2%).
!
! ImagerScanConverterImpl.Result (1 refs) = 847, 2194 (3.4%) (12.2%).
! ! (23775) ImagerScanConverterImpl.ShellSort = 703 (2.8%).
! ! (24175) PDFileWriterImpl.CaptureRun = 1486 (6.0%).
! !
! ! PDFileWriterImpl.CaptureRun (1 refs) = 633, 853 (2.5%) (6.0%).
! ! (15461) PDFileWriterImpl.ExtendBB = 328 (1.3%).
! ! (15461) PDFileWriterImpl.ExtendBB = 310 (1.2%).
! !
! ImagerScanConverterImpl.FValueFor (1 refs) = 2385 (9.6%).
!
ImagerScanConverterImpl.CreatePath (1 refs) = 18, 4107 (16.6%).
(16551) ImagerPathImpl.Transform = 4063 (16.4%).

ImagerPathImpl.Transform (1 refs) = 3, 4060 (16.4%).
(6865) ImagerImpl.path = 3847 (15.5%).

ImagerImpl.path (1 refs) = 0, 3847 (15.5%).
. (11468) ImagerPathImpl.MapTrajectory = 3847 (15.5%).
.
ImagerPathImpl.MapTrajectory (2 refs) = 2, 3923 (15.8%).
. (9128) ImagerPathImpl.Map = 3923 (15.8%).
.
. ImagerPathImpl.Map (1 refs) = 36, 3887 (15.8%).
. (8947) ImagerPathImpl.TransformCurveTo = 3773 (15.2%).
.
ImagerPathImpl.TransformCurveTo (2 refs) = 71, 3757 (15.4%).
(6090) ImagerScanConverterImpl.Curve = 1326 (5.3%).
(6175) ImagerStrokeImpl.Curve = 2294 (9.2%).

ImagerStrokeImpl.Curve (1 refs) = 86, 2208 (9.2%).
! (8275) ImagerStrokeImpl.TraverseCubic = 856 (3.4%).
! (8375) ImagerStrokeImpl.TraverseCubic = 908 (3.6%).
!
! ImagerStrokeImpl.TraverseCubic (2 refs) = 280, 1484 (7.1%).
! (4414) ImagerStrokeImpl.ParallelTo = 346 (1.3%).
! (4468) ImagerStrokeImpl.ParallelTo = 364 (1.4%).
! (4828) ImagerStrokeImpl.SubDivide = 426 (1.7%).
!
ImagerScanConverterImpl.Curve (2 refs) = 51, 1364 (5.7%).
(16157) ImagerScanConverterImpl.AppendBezier = 1364 (5.5%).

ImagerScanConverterImpl.AppendBezier (1 refs) = 258, 1106 (5.5%).
(15436) ImagerScanConverterImpl.AppendMonotoneBezier = 802 (3.2%).

ImagerScanConverterImpl.AppendMonotoneBezier (5 refs) = 278, 704 (3.9%).
(13960) ImagerScanConverterImpl.AppendMonotoneShortPiece = 703 (2.8%).


The remaining procedures had less than 741 wakeups.
Now repeat test without FP microcode
% -- Running with NO FP microcode, all other viewers except Spy destroyed, Spy watching all CPU activity
% run spy; spy; statistics on; date; interpresstopd; -- start spy
% Monday, December 16, 1985 11:30 am PST
% interpresstopd GreenDaleOriginal.PD.Color400 ← GreenDaleOriginal.IP color400
Reading []<>DIPPSY>GreenDaleOriginal.IP!1 . . . [1] []<>DIPPSY>GreenDaleOriginal.PD.Color400!5 written.
{00:42:34 seconds, 782031 words, 555 page faults}