<> <> <> Thursday, December 5, 1985 4:09 pm PST Experimental subject: ContourFiltered.ip!2 2313944 bytes 09-Sep-85 17:36:36 PDT 5-Dec-85 16:14:16 8 Plass.pa /Randolph/Cedar/Dippsy/ContourFiltered.ip 5-Dec-85 16:14:16 8 Version of September 9, 1985 5:36:36 pm PDT; 2313944 bytes. 5-Dec-85 16:14:16 8 Plass.pa Started. 5-Dec-85 16:14:17 Copying file 5-Dec-85 16:15:36 Starting Interpress 3.0 master 5-Dec-85 16:15:36 Getting bitmap 5-Dec-85 16:15:36 Starting context ... Died, reason unknown. <> % Preview ///Dippsy/ContourFiltered.ip {00:02:14 seconds, 31036 words} << Time to parse skeleton, mostly.>> <<>> ========================================================== Cedar Spy of: June 24, 1985 2:39:35 pm PDT. Executed at: December 6, 1985 2:29:48 pm PST. Measuring CPU usage. Watching process: 325B. Start Breaks: PVPaint [source: 13612]. Stop Breaks: PVPaint [source: 13744]. 1 start breaks encountered. 1 stop breaks encountered. (Please wait-- processing log.) Spy ran for 58 minutes 3 seconds. Total wakeups = 236009 (67 per second). Total page faults = 1373 (0 per second). Total words allocated = 13495624 (3874 per second). Total words reclaimed = 10694412 (3070 per second). Scheduled Process-Priority Summary: priority normal = 236007 (99.9%). priority foreground = 2 (0.1%). Breakdown By Type Of Action: executing = 193201 (81.8%). waiting pagefault = 4337 (1.8%). waiting ML = 1118 (0.4%). waiting CV = 20630 (8.7%). waiting preempted = 16723 (7.0%). 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 = 236009. Average stack depth = 50. No. modules allocated = 48. No. procedures allocated = 218. Total words allocated = 13278. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Breakdown of interesting processes. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Process 325B running at priority [normal, foreground] = 236009 (100.0%). ViewerForkersImpl.ViewerForkerBase = 236007 (99.9%). FileStreamProcessCacheImpl.FileStreamForegroundProcess = 1 (0.1%). VMAllocImpl.InitializeAllocateVirtualMemoryInternal = 1 (0.1%). ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Breakdown of interesting procedures. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ViewerForkersImpl.ViewerForkerBase (1 refs) = 0, 236007 (99.9%). . (4637) ViewerLocksImpl.CallRootAndLinksUnderWriteLock = 236007 (99.9%). . . ViewerLocksImpl.CallRootAndLinksUnderWriteLock (1 refs) = 0, 236007 (99.9%). . (1526) ViewerLocksImpl.CallUnderWriteLock = 236007 (99.9%). . . ViewerLocksImpl.CallUnderWriteLock (1 refs) = 0, 236007 (99.9%). . (6800) ViewerPaintImpl.LocalPaintViewer = 236007 (99.9%). . . ViewerPaintImpl.LocalPaintViewer (1 refs) = 0, 236007 (99.9%). . (8458) ViewerPaintImpl.RecursivelyPaintViewers = 236007 (99.9%). . . ViewerPaintImpl.RecursivelyPaintViewers (1 refs) = 0, 236007 (99.9%). . (7329) ViewerPaintImpl.PaintClient = 236007 (99.9%). . . ViewerPaintImpl.PaintClient (1 refs) = 0, 236007 (99.9%). . (15179) ViewerPaintImpl.PaintScreen = 236007 (99.9%). . . ViewerPaintImpl.PaintScreen (1 refs) = 0, 236007 (99.9%). . (14076) ImagerImpl.DoSaveAll = 236007 (99.9%). . . ImagerImpl.DoSaveAll (1 refs) = 0, 236007 (99.9%). . (1953) ImagerStateImpl.StateDoSave = 181453 (76.8%). . (1953) ImagerMemoryImpl.MemoryDoSave = 54554 (23.1%). . . ImagerStateImpl.StateDoSave (1 refs) = 0, 181453 (76.8%). . ! (2736) ImagerMemoryImpl.Action = 181401 (76.8%). . ! . ! ImagerMemoryImpl.Action (1 refs) = 0, 181401 (76.8%). . ! (5509) ImagerMemoryImpl.ReplayList = 181401 (76.8%). . ! . ! ImagerMemoryImpl.ReplayList (1 refs) = 23, 181378 (76.8%). . ! (7917) ImagerImpl.MaskStroke = 181377 (76.8%). . ! . ! ImagerImpl.MaskStroke (1 refs) = 0, 181377 (76.8%). . ! (11249) ImagerRasterImpl.RasterMaskStroke = 181377 (76.8%). . ! . ! ImagerRasterImpl.RasterMaskStroke (1 refs) = 1, 181376 (76.8%). . ! (15544) ImagerRasterImpl.MaskRuns = 181374 (76.8%). . ! . ! ImagerRasterImpl.MaskRuns (1 refs) = 2, 181372 (76.8%). . ! (11027) ImagerRasterImpl.RunsFromPath = 181372 (76.8%). . ! . ! ImagerRasterImpl.RunsFromPath (1 refs) = 12, 181360 (76.8%). . ! (9473) ImagerScanConverterImpl.CreatePath = 177395 (75.1%). . ! (10594) ImagerRasterImpl.maskRunsAction = 3953 (1.6%). . ! . ! ImagerScanConverterImpl.CreatePath (1 refs) = 13, 177382 (75.1%). . ! (16551) ImagerPathImpl.Transform = 177270 (75.1%). . ! . ! ImagerPathImpl.Transform (1 refs) = 9, 177261 (75.1%). . ! (6865) ImagerMemoryImpl.PathProc = 176781 (74.9%). . ! . ! ImagerMemoryImpl.PathProc (1 refs) = 1, 176780 (74.9%). . ! . (7855) ImagerMemoryImpl.DoPath = 176780 (74.9%). . ! . . ! . ImagerMemoryImpl.DoPath (1 refs) = 5365, 171415 (2.2%) (74.9%). . ! . (3317) waiting.pagefault = 3199 (1.3%). . ! . (3447) ImagerPathImpl.TransformLineTo = 171401 (72.6%). . ! . . ! ImagerPathImpl.TransformLineTo (2 refs) = 2672, 168926 (72.7%). . ! . (5944) ImagerScanConverterImpl.Line = 106994 (45.3%). . ! . (5985) ImagerStrokeImpl.Line = 60194 (25.5%). . ! . . ! . ImagerStrokeImpl.Line (1 refs) = 6052, 54142 (2.5%) (25.5%). . ! . (6572) ImagerStrokeImpl.FindVertex = 5471 (2.3%). . ! . (6633) ImagerStrokeImpl.FindVertex = 5080 (2.1%). . ! . (6808) ImagerPathImpl.TransformMoveTo = 16834 (7.1%). . ! . (6885) ImagerPathImpl.TransformMoveTo = 22758 (9.6%). . ! . . ! . ImagerStrokeImpl.FindVertex (2 refs) = 5290, 5261 (2.2%) (4.4%). . ! . . ! ImagerPathImpl.TransformMoveTo (4 refs) = 1070, 38658 (16.8%). . ! . (5796) ImagerScanConverterImpl.Close = 38241 (16.2%). . ! . . ! ImagerScanConverterImpl.Close (2 refs) = 503, 37857 (16.2%). . ! . (16233) ImagerScanConverterImpl.Line = 37039 (15.6%). . ! . . ! ImagerScanConverterImpl.Line (2 refs) = 7599, 136434 (3.2%) (61.0%). . ! (15854) ImagerScanConverterImpl.Interpolate = 8373 (3.5%). . ! (15901) ImagerScanConverterImpl.Interpolate = 8377 (3.5%). . ! (16023) ImagerScanConverterImpl.AppendBezier = 119222 (50.5%). . ! . ! ImagerScanConverterImpl.AppendBezier (1 refs) = 22005, 97217 (9.3%) (50.5%). . ! . (14620) RealFnsImpl.SqRt = 2532 (1.0%). . ! . (15401) ImagerScanConverterImpl.AppendMonotoneBezier = 3184 (1.3%). . ! . (15401) ImagerScanConverterImpl.AppendMonotoneBezier = 3044 (1.2%). . ! . (15436) ImagerScanConverterImpl.AppendMonotoneBezier = 86135 (36.4%). . ! . . ! . ImagerScanConverterImpl.AppendMonotoneBezier (3 refs) = 46586, 45777 (19.7%) (39.1%). . ! . (13960) ImagerScanConverterImpl.AppendMonotoneShortPiece = 26692 (11.3%). . ! . (14101) ImagerScanConverterImpl.ClipS = 2376 (1.0%). . ! . (14101) ImagerScanConverterImpl.ClipF = 2450 (1.0%). . ! . (14101) ImagerScanConverterImpl.ClipF = 2444 (1.0%). . ! . (14101) ImagerScanConverterImpl.ClipS = 2401 (1.0%). . ! . (14101) ImagerScanConverterImpl.ClipS = 2369 (1.0%). . ! . (14101) ImagerScanConverterImpl.ClipF = 2459 (1.0%). . ! . . ! . ImagerScanConverterImpl.AppendMonotoneShortPiece (1 refs) = 4434, 22258 (11.3%). . ! . ! (9577) ImagerScanConverterImpl.IterationsUntilFlat = 11206 (4.7%). . ! . ! (9660) ImagerScanConverterImpl.AppendSegment = 11052 (4.6%). . ! . ! . ! . ! ImagerScanConverterImpl.IterationsUntilFlat (1 refs) = 11206 (4.7%). . ! . ! . ! . ImagerScanConverterImpl.ClipF (4 refs) = 9599 (4.0%). . ! . ! . ! . ImagerScanConverterImpl.ClipS (4 refs) = 9479 (4.0%). . ! . . ! ImagerScanConverterImpl.Interpolate (8 refs) = 18521 (7.8%). . ! ! . ! ImagerScanConverterImpl.AppendSegment (2 refs) = 9483, 2031 (4.0%) (4.8%). . ! . ImagerMemoryImpl.MemoryDoSave (1 refs) = 0, 54554 (23.1%). . . (12042) ImagerMemoryImpl.GetBody = 54551 (23.1%). . . . . ImagerMemoryImpl.GetBody (1 refs) = 0, 54551 (23.1%). . . (4991) IPExecImpl.call = 54551 (23.1%). . . . . IPExecImpl.call (1 refs) = 0, 54551 (23.1%). . . (13681) IPContextImpl.Call = 54551 (23.1%). . . . . IPContextImpl.Call (1 refs) = 0, 54551 (23.1%). . . (684) IPExecImpl.action = 54551 (23.1%). . . . . IPExecImpl.action (1 refs) = 0, 54551 (23.1%). . . (10205) IPExecImpl.ExecuteInlineBody = 54551 (23.1%). . . . . IPExecImpl.ExecuteInlineBody (1 refs) = 0, 54551 (23.1%). . . (9412) IPExecImpl.ExecuteToEndOfBody = 54551 (23.1%). . . . . IPExecImpl.ExecuteToEndOfBody (1 refs) = 3474, 51077 (23.1%). . . (7989) IPMasterImpl.GetToken = 11859 (5.0%). . . (8573) IPApplyImpl.Apply = 37485 (15.8%). . . . . IPApplyImpl.Apply (1 refs) = 354, 37131 (15.8%). . . ! (5228) IPImageImpl.ApplyLINETO = 25196 (10.6%). . . ! (5228) IPImageImpl.ApplyMASKSTROKE = 8988 (3.8%). . . ! . . ! IPImageImpl.ApplyLINETO (1 refs) = 703, 24493 (10.6%). . . ! ! (12677) ImagerPathImpl.LineTo = 12982 (5.5%). . . ! ! (12677) IPStackImpl.PushTrajectory = 8054 (3.4%). . . ! ! . . ! ! ImagerPathImpl.LineTo (1 refs) = 1026, 11956 (5.5%). . . ! ! (7204) AllocatorImpl.NewSystemObject = 11956 (5.0%). . . ! ! . . ! IPImageImpl.ApplyMASKSTROKE (1 refs) = 1, 8987 (3.8%). . . ! . (14245) ImagerImpl.MaskStrokeTrajectory = 8986 (3.8%). . . ! . . . ! . ImagerImpl.MaskStrokeTrajectory (1 refs) = 3, 8983 (3.8%). . . ! . (11603) ImagerMemoryImpl.MemoryMaskStroke = 8983 (3.8%). . . ! . . . ! . ImagerMemoryImpl.MemoryMaskStroke (1 refs) = 0, 8983 (3.8%). . . ! . (18159) ImagerMemoryImpl.GetPath = 8917 (3.7%). . . ! . . . ! . ImagerMemoryImpl.GetPath (1 refs) = 6, 8911 (3.7%). . . ! . (4745) ImagerImpl.path = 8574 (3.6%). . . ! . . . ! . ImagerImpl.path (1 refs) = 0, 8574 (3.6%). . . ! . (11468) ImagerPathImpl.MapTrajectory = 8574 (3.6%). . . ! . . . ! . ImagerPathImpl.MapTrajectory (1 refs) = 0, 8574 (3.6%). . . ! . (9128) ImagerPathImpl.Map = 8574 (3.6%). . . ! . . . ! . ImagerPathImpl.Map (1 refs) = 1805, 6769 (3.6%). . . ! . (8902) ImagerMemoryImpl.LineTo = 6609 (2.8%). . . ! . . . ! IPStackImpl.PushTrajectory (4 refs) = 372, 8578 (3.7%). . . ! (3745) IPStackImpl.PushAny = 8578 (3.6%). . . ! . . ! IPStackImpl.PushAny (1 refs) = 992, 7586 (3.6%). . . ! (1443) AllocatorImpl.NewSystemObject = 7586 (3.2%). . . ! . . IPMasterImpl.GetToken (1 refs) = 4580, 7279 (5.0%). . . (20191) IOCommonImpl.GetChar = 2958 (1.2%). . . . AllocatorImpl.NewSystemObject (11 refs) = 3675, 24643 (11.9%). . (9534) StorageAccountingImpl.ConsiderCollection = 23522 (9.9%). . . StorageAccountingImpl.ConsiderCollection (1 refs) = 2093, 21429 (9.9%). . (1724) CollectorImpl.InternalReclaim = 21429 (9.0%). . . CollectorImpl.InternalReclaim (1 refs) = 21422, 7 (9.0%) (9.0%). . (2985) waiting.CV = 20626 (8.7%). . waiting.CV (2 refs) = 20630 (8.7%). ! waiting.preempted (1237 refs) = 16723 (7.0%). The remaining procedures had less than 7080 wakeups. <> <<>> <<(much of the above is uninteresting because of the inefficient culling and clipping of strokes).>> <<>> <> <> % _ &c _ ImagerTerminal.ColorContext[Terminal.Current[], FALSE] ^[class: 1674322B^, state: 11176602B^, data: 5672162B^, propList: NIL] {1.76 seconds, 5604 words} % _ Imager.SetGray[&c, 0] {0.16 seconds, 1528 words} % _ Imager.MaskRectangle[&c, [0,0,1,1]] {0.56 seconds, 3234 words} % _ Imager.SetGray[&c, 1] {0.10 seconds, 712 words} % _ &m _ Interpress.Open[fileName: "ContourFiltered.ip", logProc: NIL, logData: NIL] ^[pages: 1, skeleton: 12412142B^, logProc: NIL, logData: NIL, impl: 10010042B^] {00:02:24 seconds, 9864 words} % _ Imager.ScaleT[&c, 0.2] {0.11 seconds, 1138 words} % _ Interpress.DoPage[master: &m, page: 1, context: &c] {00:24:13 seconds, 16 page faults} % _ &c _ ImagerNullImpl.Create[] ^[class: 1675132B^, state: NIL, data: 12201402B^, propList: NIL] {1.54 seconds, 19176 words} % _ Interpress.DoPage[master: &m, page: 1, context: &c] {00:08:04 seconds, 8732000 words} % _ &c.data!!! ^[doSave: 1, nest: 0, setInt: (8)[0, 0, 2, 2, 0, 0, 0, 0], setReal: (19)[0, 0, 0, 0, 0, 0, 0, 0, 1317, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], setT: 0, setFont: 0, setColorGray: 0, setColorRGB: 0, setColorOther: 0, setColorSampled: 0, setClipper: 0, setStrokeDashes: 0, getInt: (8)[0, 0, 0, 0, 0, 0, 0, 0], getReal: (19)[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], getT: 0, getFont: 0, getColor: 0, getClipper: 0, concatT: 3, scale2T: 0, rotateT: 0, translateT: 0, move: 0, setXY: 0, setXYRel: 0, show: 0, showChars: 0, showText: 0, showBytes: 0, startUnderline: 0, maskUnderline: 0, correctMask: 0, correctSpace: 0, space: 0, setCorrectMeasure: 0, setCorrectTolerance: 0, correct: 0, dontCorrect: 0, setGray: 0, setSampledColor: 0, setSampledBlack: 0, maskFill: 0, maskFillPath: ^[move: 0, line: 0, curve: 0, conic: 0, arc: 0], maskRectangle: 0, maskRectangleI: 0, maskStroke: 1317, maskStrokePath: ^[move: 1317, line: 481998, curve: 0, conic: 0, arc: 0], maskStrokeClosed: 0, maskStrokeClosedPath: ^[move: 0, line: 0, curve: 0, conic: 0, arc: 0], maskVector: 0, maskPixel: 0, maskBits: 0, clip: 0, clipRectangle: 0, clipRectangleI: 0, getCP: 0, getBoundingRectangle: 0] {3.02 seconds, 13830 words} % <> % _ &c _ ImagerNullImpl.Create[] ^[class: 13210522B^, state: NIL, data: 13353702B^, propList: NIL] {1.32 seconds, 19536 words} % _ Interpress.DoPage[master: &m, page: 1, context: &c] {00:09:55 seconds, 8731040 words} <> ========================================================== Cedar Spy of: June 24, 1985 2:39:35 pm PDT. Executed at: December 9, 1985 3:59:10 pm PST. Measuring CPU usage. Watching process: 276B. Start Breaks: NullDoSave [source: 4275]. Stop Breaks: NullDoSave [source: 4375]. 1 start breaks encountered. 1 stop breaks encountered. (Please wait-- processing log.) Spy ran for 9 minutes 55 seconds. Total wakeups = 46107 (77 per second). Total page faults = 0 (0 per second). Total words allocated = 8730222 (14672 per second). Total words reclaimed = 8686930 (14599 per second). Scheduled Process-Priority Summary: priority normal = 46102 (99.9%). priority foreground = 5 (0.1%). Breakdown By Type Of Action: executing = 29561 (64.1%). waiting ML = 179 (0.3%). waiting CV = 15769 (34.2%). waiting preempted = 598 (1.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: Total samples read from log = 46107. Average stack depth = 53. No. modules allocated = 36. No. procedures allocated = 118. Total words allocated = 4761. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Breakdown of interesting processes. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Process 276B running at priority [normal, foreground] = 46107 (100.0%). CommandToolImpl.CommandToolBase = 46107 (100.0%). ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Breakdown of interesting procedures. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ CommandToolImpl.CommandToolBase (1 refs) = 0, 46107 (100.0%). (19831) ProcessPropsImpl.PushPropList = 46107 (100.0%). ProcessPropsImpl.PushPropList (1 refs) = 0, 46107 (100.0%). (821) InterpreterPrivateImpl.inner = 46107 (100.0%). InterpreterPrivateImpl.inner (1 refs) = 0, 46107 (100.0%). (1667) EvaluateImpl.EvalNoProps = 46107 (100.0%). EvaluateImpl.EvalNoProps (1 refs) = 0, 46107 (100.0%). (5876) EvaluateImpl.EvalNode = 46107 (100.0%). EvaluateImpl.EvalNode (1 refs) = 0, 46107 (100.0%). (8677) EvaluateImpl.EvalApply = 46107 (100.0%). EvaluateImpl.EvalApply (1 refs) = 0, 46107 (100.0%). (27716) EvaluateImpl.DoApply = 46107 (100.0%). EvaluateImpl.DoApply (1 refs) = 0, 46107 (100.0%). (26043) EvaluateImpl.CallIt = 46107 (100.0%). EvaluateImpl.CallIt (1 refs) = 0, 46107 (100.0%). (25606) AMEventsImpl.Apply = 46107 (100.0%). AMEventsImpl.Apply (1 refs) = 0, 46107 (100.0%). (25386) IPExecImpl.DoPage = 46107 (100.0%). IPExecImpl.DoPage (1 refs) = 0, 46107 (100.0%). (15327) IPExecImpl.DoTopAction = 46107 (100.0%). IPExecImpl.DoTopAction (1 refs) = 0, 46107 (100.0%). (13808) IPErrorImpl.AddMaster = 46107 (100.0%). IPErrorImpl.AddMaster (1 refs) = 0, 46107 (100.0%). (530) ProcessPropsImpl.AddPropList = 46107 (100.0%). ProcessPropsImpl.AddPropList (1 refs) = 0, 46107 (100.0%). (600) IPExecImpl.save = 46107 (100.0%). IPExecImpl.save (1 refs) = 0, 46107 (100.0%). (13783) IPContextImpl.DoSaveAll = 46107 (100.0%). IPContextImpl.DoSaveAll (1 refs) = 0, 46107 (100.0%). (2701) ImagerImpl.DoSaveAll = 46107 (100.0%). ImagerImpl.DoSaveAll (1 refs) = 0, 46107 (100.0%). (1953) ImagerNullImpl.NullDoSave = 46107 (100.0%). ImagerNullImpl.NullDoSave (1 refs) = 0, 46107 (100.0%). (4326) IPExecImpl.call = 46107 (100.0%). IPExecImpl.call (1 refs) = 0, 46107 (100.0%). (13681) IPContextImpl.Call = 46107 (100.0%). IPContextImpl.Call (1 refs) = 0, 46107 (100.0%). (684) IPExecImpl.action = 46105 (99.9%). IPExecImpl.action (1 refs) = 0, 46105 (99.9%). . (10205) IPExecImpl.ExecuteInlineBody = 46105 (99.9%). . . IPExecImpl.ExecuteInlineBody (1 refs) = 0, 46105 (99.9%). . (9412) IPExecImpl.ExecuteToEndOfBody = 46105 (99.9%). . . IPExecImpl.ExecuteToEndOfBody (1 refs) = 3352, 42753 (7.2%) (99.9%). . (7989) IPMasterImpl.GetToken = 11553 (25.0%). . (8573) IPApplyImpl.Apply = 29515 (64.0%). . (8603) IPStackImpl.PushNum = 1685 (3.6%). . . IPApplyImpl.Apply (1 refs) = 273, 29242 (64.0%). . ! (5228) IPImageImpl.ApplyLINETO = 24072 (52.2%). . ! (5228) IPImageImpl.ApplyLINETOX = 1242 (2.6%). . ! (5228) IPImageImpl.ApplyMASKSTROKE = 2144 (4.6%). . ! (5228) IPImageImpl.ApplyLINETOY = 1706 (3.7%). . ! . ! IPImageImpl.ApplyLINETO (1 refs) = 693, 23379 (52.2%). . ! ! (12617) IPStackImpl.PopVec = 2037 (4.4%). . ! ! (12640) IPStackImpl.PopTrajectory = 1090 (2.3%). . ! ! (12677) ImagerPathImpl.LineTo = 3070 (6.6%). . ! ! (12677) IPStackImpl.PushTrajectory = 17182 (37.2%). . ! ! . ! ! ImagerPathImpl.LineTo (1 refs) = 867, 2203 (6.6%). . ! ! (7204) AllocatorImpl.NewSystemObject = 2203 (4.7%). . ! ! . ! IPImageImpl.ApplyMASKSTROKE (1 refs) = 1, 2143 (4.6%). . ! ! (14245) ImagerImpl.MaskStrokeTrajectory = 2140 (4.6%). . ! ! . ! ! ImagerImpl.MaskStrokeTrajectory (1 refs) = 1, 2139 (4.6%). . ! ! (11603) ImagerNullImpl.NullMaskStroke = 2139 (4.6%). . ! ! . ! ! ImagerNullImpl.NullMaskStroke (1 refs) = 10, 2129 (4.6%). . ! ! (10503) ImagerNullImpl.CountPath = 2129 (4.6%). . ! ! . ! ! ImagerNullImpl.CountPath (1 refs) = 2, 2127 (4.6%). . ! ! (3772) ImagerImpl.path = 2127 (4.6%). . ! ! . ! ! ImagerImpl.path (1 refs) = 3, 2124 (4.6%). . ! ! (11468) ImagerPathImpl.MapTrajectory = 2124 (4.6%). . ! ! . ! ! ImagerPathImpl.MapTrajectory (1 refs) = 0, 2124 (4.6%). . ! ! (9128) ImagerPathImpl.Map = 2124 (4.6%). . ! ! . ! ! ImagerPathImpl.Map (1 refs) = 1593, 531 (3.4%) (4.6%). . ! ! . ! IPImageImpl.ApplyLINETOY (1 refs) = 51, 1655 (3.7%). . ! . (12986) IPStackImpl.PushTrajectory = 1339 (2.9%). . ! . . ! IPStackImpl.PushTrajectory (4 refs) = 307, 19149 (42.1%). . ! ! (3745) IPStackImpl.PushAny = 19149 (41.5%). . ! ! . ! ! IPStackImpl.PushAny (1 refs) = 953, 18196 (2.0%) (41.5%). . ! ! (1443) AllocatorImpl.NewSystemObject = 18196 (39.4%). . ! ! . ! IPStackImpl.PopVec (3 refs) = 638, 1409 (4.4%). . ! . (5460) IPStackImpl.PopReal = 737 (1.5%). . ! . (5485) IPStackImpl.PopReal = 672 (1.4%). . ! . . ! AllocatorImpl.NewSystemObject (5 refs) = 3095, 17617 (6.7%) (44.9%). . ! ! (9534) StorageAccountingImpl.ConsiderCollection = 17593 (38.1%). . ! ! . ! ! StorageAccountingImpl.ConsiderCollection (1 refs) = 1642, 15951 (3.5%) (38.1%). . ! ! (1724) CollectorImpl.InternalReclaim = 15951 (34.5%). . ! ! . ! ! CollectorImpl.InternalReclaim (1 refs) = 15947, 4 (34.5%) (34.5%). . ! ! (2985) waiting.CV = 15761 (34.1%). . ! ! . ! IPStackImpl.PopReal (5 refs) = 1490 (3.2%). . ! . IPMasterImpl.GetToken (1 refs) = 4302, 7251 (9.3%) (25.0%). . ! (20157) IOCommonImpl.GetIndex = 2398 (5.2%). . ! (20191) IOCommonImpl.GetChar = 2913 (6.3%). . ! (20259) IOCommonImpl.GetChar = 1940 (4.2%). . ! . ! IOCommonImpl.GetChar (2 refs) = 1464, 3389 (3.1%) (10.5%). . ! ! (10341) FileStreamImpl.GetChar = 3389 (7.3%). . ! ! . ! ! FileStreamImpl.GetChar (1 refs) = 3300, 89 (7.1%) (7.3%). . ! ! . ! IOCommonImpl.GetIndex (1 refs) = 919, 1479 (5.2%). . ! (12265) FileStreamImpl.GetIndex = 1479 (3.2%). . ! . ! FileStreamImpl.GetIndex (1 refs) = 1479 (3.2%). . ! . IPStackImpl.PushNum (1 refs) = 1685 (3.6%). . waiting.CV (2 refs) = 15769 (34.2%). The remaining procedures had less than 1383 wakeups. <<( It is clear that a large portion of the time is being spent allocating trajectory lists - we can fix this, and will do so in order to better gather stats on other parts ).>> <> <> <<(changes to IPInterpreter, IPStackImpl, IPImageImpl, small one to IPExecImpl)>> % _ &c _ ImagerNullImpl.Create[] ^[class: 12514362B^, state: NIL, data: 12656242B^, propList: NIL] {1.69 seconds, 23952 words} % _ &m _ IPExecImpl.Open[fileName: "ContourFiltered.ip", logProc: NIL, logData: NIL] ^[pages: 1, skeleton: 13716440B^, logProc: NIL, logData: NIL, impl: 10124722B^] {00:01:57 seconds, 14900 words} % _ IPExecImpl.DoPage[master: &m, page: 1, context: &c] {00:04:14 seconds, 273118 words} % <<(Much better!)>> <> <> % _ &c _ ImagerNullImpl.Create[] ^[class: 12443042B^, state: NIL, data: 10561442B^, propList: NIL] {0.69 seconds, 3488 words} % _ &m _ IPExecImpl.Open[fileName: "ContourFiltered.ip", logProc: NIL, logData: NIL] ^[pages: 1, skeleton: 12613636B^, logProc: NIL, logData: NIL, impl: 12000506B^] {00:01:58 seconds, 16752 words} % _ IPExecImpl.DoPage[master: &m, page: 1, context: &c] {00:05:10 seconds, 126006 words} % _ IPExecImpl.DoPage[master: &m, page: 1, context: &c] {00:04:39 seconds, 266072 words} -- (spy not running) % <<( discovered bug in changes; go back to repeat tests )>> <> % @Test3 [[///Commands/Date]] Wednesday, December 11, 1985 3:19 pm PST {0.05 seconds, 192 words} [[///Commands/Run IPTestPackage]] Ran: []<>dippsy>IPTestPackage.bcd!6 {2.22 seconds, 14151 words, 6 page faults} [[///Commands/_ &c _ ImagerNullImpl.Create[]]] ^[class: 11146472B^, state: NIL, data: 7363562B^, propList: NIL] {1.66 seconds, 22240 words} [[///Commands/_ &m _ IPExecImpl.Open[fileName: "ContourFiltered.ip", logProc: NIL, logData: NIL]]] ^[pages: 1, skeleton: 11152274B^, logProc: NIL, logData: NIL, impl: 7316232B^] {00:01:59 seconds, 17198 words} [[///Commands/_ IPExecImpl.DoPage[master: &m, page: 1, context: &c]]] {00:06:36 seconds, 4919866 words} % <> <> % @CFNullTest [[///Commands/statistics on]] Statistics on. [[///Commands/date]] Friday, December 13, 1985 5:11 pm PST {0.06 seconds, 106 words} [[///Commands/Run IPTestPackage]] Previously loaded and run: [Cyan]Dippsy>IPTestPackage.bcd!1 {0.14 seconds, 732 words} [[///Commands/_ &c _ ImagerNullImpl.Create[]]] ^[class: 1675222B^, state: NIL, data: 7450062B^, propList: NIL] {1.02 seconds, 4872 words} [[///Commands/_ &m _ IPExecImpl.Open[fileName: "ContourFiltered.ip", logProc: NIL, logData: NIL]]] ^[pages: 1, skeleton: 7304122B^, logProc: NIL, logData: NIL, impl: 7523612B^] {00:01:59 seconds, 32780 words} [[///Commands/_ IPExecImpl.DoPage[master: &m, page: 1, context: &c]]] {00:07:53 seconds, 4920626 words} ========================================================== Cedar Spy of: December 12, 1985 10:51:34 am PST. Executed at: December 13, 1985 5:25:45 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 7 minutes 52 seconds. Total wakeups = 36614 (77 per second). Total page faults = 0 (0 per second). Total words allocated = 4919024 (10421 per second). Total words reclaimed = 4888374 (10356 per second). Scheduled Process-Priority Summary: priority background = 6261 (17.1%). priority normal = 29851 (81.5%). priority foreground = 464 (1.2%). priority pagefaultHigh = 38 (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: Processed log in 295.269 seconds. Total samples read from log = 36614. Average stack depth = 42. No. modules allocated = 92. No. procedures allocated = 399. Total words allocated = 12534. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Breakdown of interesting processes. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Process 311B running at priority [normal] = 29361 (80.1%). CommandToolImpl.CommandToolBase = 29361 (80.1%). Process 365B running at priority [background, normal] = 6455 (17.6%). CollectorImpl.BackgroundCollector = 6455 (17.6%). Assorted processes = 798 (2.1%). ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Breakdown of interesting procedures. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ CommandToolImpl.CommandToolBase (1 refs) = 0, 29361 (80.1%). ! (19831) ProcessPropsImpl.PushPropList = 29361 (80.1%). ! ! ProcessPropsImpl.PushPropList (1 refs) = 0, 29361 (80.1%). ! (821) InterpreterPrivateImpl.inner = 29361 (80.1%). ! ! InterpreterPrivateImpl.inner (1 refs) = 0, 29361 (80.1%). ! (1667) EvaluateImpl.EvalNoProps = 29361 (80.1%). ! ! EvaluateImpl.EvalNoProps (1 refs) = 0, 29361 (80.1%). ! (5876) EvaluateImpl.EvalNode = 29361 (80.1%). ! ! EvaluateImpl.EvalNode (1 refs) = 0, 29361 (80.1%). ! (8677) EvaluateImpl.EvalApply = 29361 (80.1%). ! ! EvaluateImpl.EvalApply (1 refs) = 0, 29361 (80.1%). ! (27716) EvaluateImpl.DoApply = 29361 (80.1%). ! ! EvaluateImpl.DoApply (1 refs) = 0, 29361 (80.1%). ! (26043) EvaluateImpl.CallIt = 29361 (80.1%). ! ! EvaluateImpl.CallIt (1 refs) = 0, 29361 (80.1%). ! (25606) AMEventsImpl.Apply = 29361 (80.1%). ! ! AMEventsImpl.Apply (1 refs) = 0, 29361 (80.1%). ! (25386) IPExecImpl.DoPage = 29361 (80.1%). ! ! IPExecImpl.DoPage (1 refs) = 0, 29361 (80.1%). ! (14347) IPExecImpl.DoTopAction = 29361 (80.1%). ! ! IPExecImpl.DoTopAction (1 refs) = 0, 29361 (80.1%). ! (12699) IPErrorImpl.AddMaster = 29361 (80.1%). ! ! IPErrorImpl.AddMaster (1 refs) = 0, 29361 (80.1%). ! (530) ProcessPropsImpl.AddPropList = 29361 (80.1%). ! ! ProcessPropsImpl.AddPropList (1 refs) = 0, 29361 (80.1%). ! (600) IPExecImpl.save = 29361 (80.1%). ! ! IPExecImpl.save (1 refs) = 0, 29361 (80.1%). ! (12674) IPContextImpl.DoSaveAll = 29361 (80.1%). ! ! IPContextImpl.DoSaveAll (1 refs) = 0, 29361 (80.1%). ! (2383) ImagerImpl.DoSaveAll = 29361 (80.1%). ! ! ImagerImpl.DoSaveAll (1 refs) = 0, 29361 (80.1%). ! (1924) ImagerNullImpl.NullDoSave = 29361 (80.1%). ! ! ImagerNullImpl.NullDoSave (1 refs) = 0, 29361 (80.1%). ! (4259) IPExecImpl.call = 29361 (80.1%). ! ! IPExecImpl.call (1 refs) = 0, 29361 (80.1%). ! (12582) IPContextImpl.Call = 29361 (80.1%). ! ! IPContextImpl.Call (1 refs) = 0, 29361 (80.1%). ! (1297) IPExecImpl.action = 29361 (80.1%). ! ! IPExecImpl.action (1 refs) = 0, 29361 (80.1%). ! (9932) IPExecImpl.ExecuteInlineBody = 29361 (80.1%). ! ! IPExecImpl.ExecuteInlineBody (1 refs) = 0, 29361 (80.1%). ! (9151) IPExecImpl.ExecuteToEndOfBody = 29361 (80.1%). ! ! IPExecImpl.ExecuteToEndOfBody (1 refs) = 3457, 25904 (9.4%) (80.1%). ! (7628) IPMasterImpl.GetToken = 10655 (29.1%). ! (8285) IPApplyImpl.Apply = 12334 (33.6%). ! (8342) IPStackImpl.PushNum = 2915 (7.9%). ! ! IPApplyImpl.Apply (1 refs) = 295, 12039 (33.6%). ! ! (4510) IPImageImpl.ApplyLINETO = 8919 (24.3%). ! ! (4510) IPImageImpl.ApplyLINETOX = 647 (1.7%). ! ! (4510) IPImageImpl.ApplyMASKSTROKE = 1683 (4.5%). ! ! (4510) IPImageImpl.ApplyLINETOY = 767 (2.0%). ! ! ! ! IPImageImpl.ApplyLINETO (1 refs) = 1267, 7652 (3.4%) (24.3%). ! ! ! (14021) IPImageImpl.PopVec = 2055 (5.6%). ! ! ! (14044) IPStackImpl.ExtendTrajectory = 1752 (4.7%). ! ! ! (14107) IPStackImpl.PopTrajectory = 1565 (4.2%). ! ! ! (14144) ImagerPathImpl.LineTo = 1175 (3.2%). ! ! ! (14144) IPStackImpl.PushTrajectory = 1105 (3.0%). ! ! ! ! ! IPImageImpl.ApplyMASKSTROKE (1 refs) = 2, 1681 (4.5%). ! ! . (17569) IPImageImpl.MaskStroke = 1681 (4.5%). ! ! . ! ! . IPImageImpl.MaskStroke (1 refs) = 2, 1679 (4.5%). ! ! . (17379) ImagerImpl.MaskStroke = 381 (1.0%). ! ! . (17436) ImagerImpl.MaskStrokeTrajectory = 1287 (3.5%). ! ! . ! ! . ImagerImpl.MaskStrokeTrajectory (1 refs) = 0, 1287 (3.5%). ! ! . . (11749) ImagerNullImpl.NullMaskStroke = 1287 (3.5%). ! ! . . ! ! . ImagerNullImpl.NullMaskStroke (2 refs) = 3, 1665 (4.5%). ! ! . (10059) ImagerNullImpl.CountPath = 1665 (4.5%). ! ! . ! ! . ImagerNullImpl.CountPath (1 refs) = 1, 1664 (4.5%). ! ! . (3664) IPImageImpl.path = 378 (1.0%). ! ! . (3664) ImagerImpl.path = 1286 (3.5%). ! ! . ! ! . ImagerImpl.path (1 refs) = 0, 1286 (3.5%). ! ! . (11614) ImagerPathImpl.MapTrajectory = 1286 (3.5%). ! ! . ! ! . ImagerPathImpl.MapTrajectory (1 refs) = 0, 1286 (3.5%). ! ! . (9128) ImagerPathImpl.Map = 1286 (3.5%). ! ! . ! ! . ImagerPathImpl.Map (1 refs) = 996, 290 (2.7%) (3.5%). ! ! . ! ! IPImageImpl.PopVec (2 refs) = 550, 1513 (5.6%). ! ! ! (3432) IPStackImpl.PopReal = 761 (2.0%). ! ! ! (3453) IPStackImpl.PopReal = 752 (2.0%). ! ! ! ! ! IPStackImpl.ExtendTrajectory (2 refs) = 1980 (5.4%). ! ! ! ! ! IPStackImpl.PopTrajectory (3 refs) = 220, 1632 (5.0%). ! ! ! (3769) IPStackImpl.PopAny = 1632 (4.4%). ! ! ! ! ! ! IPStackImpl.PopAny (1 refs) = 247, 1385 (4.4%). ! ! ! (4541) ImagerPathImpl.TrajectoriesFromPath = 1385 (3.7%). ! ! ! ! ! ! ImagerPathImpl.TrajectoriesFromPath (1 refs) = 1, 1384 (3.7%). ! ! ! (10780) ImagerPathImpl.Transform = 1384 (3.7%). ! ! ! ! ! ! ImagerPathImpl.Transform (1 refs) = 0, 1384 (3.7%). ! ! ! (6865) IPStackImpl.path = 1383 (3.7%). ! ! ! ! ! ! IPStackImpl.path (1 refs) = 0, 1383 (3.7%). ! ! ! (4366) IPStackImpl.DoTopPath = 1383 (3.7%). ! ! ! ! ! IPStackImpl.PushTrajectory (2 refs) = 126, 1122 (3.4%). ! ! . (8914) IPStackImpl.PushAny = 1122 (3.0%). ! ! . ! ! IPStackImpl.DoTopPath (2 refs) = 487, 1272 (4.8%). ! ! ! (8349) ImagerPathImpl.TransformLineTo = 1144 (3.1%). ! ! ! ! ! ! ImagerPathImpl.TransformLineTo (1 refs) = 185, 959 (3.1%). ! ! ! (5944) ImagerPathImpl.line = 959 (2.6%). ! ! ! ! ! IPStackImpl.PopReal (5 refs) = 1610 (4.3%). ! ! ! ! ! IPStackImpl.PushAny (2 refs) = 366, 882 (3.4%). ! ! . (1958) AllocatorImpl.NewSystemObject = 882 (2.4%). ! ! . ! ! ImagerPathImpl.LineTo (3 refs) = 630, 1531 (5.9%). ! ! (7204) AllocatorImpl.NewSystemObject = 1531 (4.1%). ! ! ! IPMasterImpl.GetToken (1 refs) = 3820, 6835 (10.4%) (29.1%). ! ! (19025) IOCommonImpl.GetIndex = 2361 (6.4%). ! ! (19059) IOCommonImpl.GetChar = 2727 (7.4%). ! ! (19113) IOCommonImpl.GetChar = 1747 (4.7%). ! ! ! ! IOCommonImpl.GetChar (2 refs) = 1153, 3321 (3.1%) (12.2%). ! ! ! (10341) FileStreamImpl.GetChar = 3321 (9.0%). ! ! ! ! ! ! FileStreamImpl.GetChar (1 refs) = 3311, 10 (9.0%) (9.0%). ! ! ! ! ! IOCommonImpl.GetIndex (1 refs) = 730, 1631 (6.4%). ! ! (12265) FileStreamImpl.GetIndex = 1631 (4.4%). ! ! ! ! FileStreamImpl.GetIndex (1 refs) = 1631 (4.4%). ! ! ! IPStackImpl.PushNum (1 refs) = 837, 2078 (2.2%) (7.9%). ! (2096) IPStackImpl.StackRepFromNum = 534 (1.4%). ! (2096) IPStackImpl.PushStack = 1544 (4.2%). ! ! IPStackImpl.PushStack (1 refs) = 1544 (4.2%). ! CollectorImpl.BackgroundCollector (1 refs) = 4, 6451 (17.6%). . (4817) ZCTImpl.ScanTheFrameHeap = 2044 (5.5%). . (4849) ZCTImpl.MapReclaimableObjects = 4114 (11.2%). . . ZCTImpl.MapReclaimableObjects (1 refs) = 335, 3779 (11.2%). . ! (5290) ReclaimerImpl.Reclaim = 2974 (8.1%). . ! (5474) ZCTImpl.PullNextEntry = 716 (1.9%). . ! . ! ReclaimerImpl.Reclaim (1 refs) = 1458, 1516 (3.9%) (8.1%). . ! (2617) AllocatorImpl.FreeObject = 1510 (4.1%). . ! . ! AllocatorImpl.FreeObject (2 refs) = 917, 596 (2.5%) (4.1%). . ! . ZCTImpl.ScanTheFrameHeap (1 refs) = 1, 2043 (5.5%). . (4440) RTFrameHeapSnapshotImpl.MapUncountedBodies = 1724 (4.7%). . . RTFrameHeapSnapshotImpl.MapUncountedBodies (1 refs) = 71, 1653 (4.7%). . (1207) ZCTImpl.ConservativeScanner = 1653 (4.5%). . . ZCTImpl.ConservativeScanner (1 refs) = 1317, 336 (3.5%) (4.5%). . AllocatorImpl.NewSystemObject (6 refs) = 1484, 934 (4.0%) (6.6%). (9534) StorageAccountingImpl.ConsiderCollection = 898 (2.4%). The remaining procedures had less than 1098 wakeups. <<>> <<(There's still a good deal of potential for tuning here, but with the allocations cut down we should be able to measure the other parts OK now).>> <<>> <<>> <> % interpresstopd ContourFiltered.PD.color400 _ ContourFiltered.IP color400 black of 4 0.1 scale Reading []<>Users>Pier.PA>ContourFiltered.IP!1 . . . [1] []<>Users>Pier.PA>ContourFiltered.PD.color400!1 written. {01:44:28 seconds, 73 page faults} one hour, 44 minutes !! ========================================================== Cedar Spy of: December 12, 1985 10:51:34 am PST. Executed at: December 13, 1985 4:30:31 pm PST. Measuring CPU usage. (Waking up on vertical retrace. (80 times a second)) (Please wait-- processing log.) Spy ran for 6 minutes 17 seconds. Total wakeups = 29193 (77 per second). Total page faults = 0 (0 per second). Total words allocated = 2574126 (6827 per second). Total words reclaimed = 2578660 (6839 per second). Scheduled Process-Priority Summary: processor idle = 150 (0.5%). priority background = 2984 (10.2%). priority normal = 25724 (88.1%). priority foreground = 303 (1.0%). priority pagefaultHigh = 32 (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: Processed log in 312.658 seconds. Total samples read from log = 29193. Average stack depth = 45. No. modules allocated = 99. No. procedures allocated = 482. Total words allocated = 15022. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Breakdown of interesting processes. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Process 306B running at priority [normal] = 25092 (85.9%). CommandToolImpl.CommandToolBase = 25092 (85.9%). Process 365B running at priority [background, normal] = 3442 (11.7%). CollectorImpl.BackgroundCollector = 3442 (11.7%). Assorted processes = 509 (1.7%). ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Breakdown of interesting procedures. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ CommandToolImpl.CommandToolBase (1 refs) = 0, 25092 (85.9%). ! (19831) ProcessPropsImpl.PushPropList = 25092 (85.9%). ! ! ProcessPropsImpl.PushPropList (1 refs) = 0, 25092 (85.9%). ! (821) CommandToolImpl.inner = 25092 (85.9%). ! ! CommandToolImpl.inner (1 refs) = 0, 25092 (85.9%). ! (19737) ReadEvalPrintImpl.MainLoop = 25092 (85.9%). ! ! ReadEvalPrintImpl.MainLoop (1 refs) = 0, 25092 (85.9%). ! (2848) ReadEvalPrintImpl.inner = 25092 (85.9%). ! ! ReadEvalPrintImpl.inner (1 refs) = 0, 25092 (85.9%). ! (2653) ReadEvalPrintImpl.MainLoopInternal = 25092 (85.9%). ! ! ReadEvalPrintImpl.MainLoopInternal (1 refs) = 0, 25092 (85.9%). ! (4783) CommandToolImpl.EachCommand = 25092 (85.9%). ! ! CommandToolImpl.EachCommand (1 refs) = 0, 25092 (85.9%). ! (8105) CommandToolImpl.ExecuteCommand = 25092 (85.9%). ! ! CommandToolImpl.ExecuteCommand (1 refs) = 0, 25092 (85.9%). ! (12982) CommandToolImpl.Base = 25092 (85.9%). ! ! CommandToolImpl.Base (1 refs) = 0, 25092 (85.9%). ! (12462) CommandToolImpl.innerExecute = 25092 (85.9%). ! ! CommandToolImpl.innerExecute (1 refs) = 0, 25092 (85.9%). ! (11765) PrintFileConvertImpl.Command = 25092 (85.9%). ! ! PrintFileConvertImpl.Command (1 refs) = 0, 25092 (85.9%). ! (16262) PrintFileConvertImpl.InterpressToPDAction = 25092 (85.9%). ! ! PrintFileConvertImpl.InterpressToPDAction (1 refs) = 0, 25092 (85.9%). ! (10660) ImagerPDImpl.DoPage = 25092 (85.9%). ! ! ImagerPDImpl.DoPage (1 refs) = 0, 25092 (85.9%). ! (11827) ImagerImpl.DoSaveAll = 25092 (85.9%). ! ! ImagerImpl.DoSaveAll (1 refs) = 0, 25092 (85.9%). ! (1924) ImagerStateImpl.StateDoSave = 25092 (85.9%). ! ! ImagerStateImpl.StateDoSave (1 refs) = 0, 25092 (85.9%). ! (2567) IPExecImpl.call = 25092 (85.9%). ! ! IPExecImpl.call (1 refs) = 0, 25092 (85.9%). ! (12582) IPContextImpl.Call = 25092 (85.9%). ! ! IPContextImpl.Call (1 refs) = 0, 25092 (85.9%). ! (1297) IPExecImpl.action = 25092 (85.9%). ! ! IPExecImpl.action (1 refs) = 0, 25092 (85.9%). ! (9932) IPExecImpl.ExecuteInlineBody = 25092 (85.9%). ! ! IPExecImpl.ExecuteInlineBody (1 refs) = 0, 25092 (85.9%). ! (9151) IPExecImpl.ExecuteToEndOfBody = 25092 (85.9%). ! ! IPExecImpl.ExecuteToEndOfBody (1 refs) = 753, 24339 (2.5%) (85.9%). ! (7628) IPMasterImpl.GetToken = 2303 (7.8%). ! (8285) IPApplyImpl.Apply = 21442 (73.4%). ! (8342) IPStackImpl.PushNum = 594 (2.0%). ! ! IPApplyImpl.Apply (1 refs) = 109, 21333 (73.4%). ! ! (4510) IPImageImpl.ApplyLINETO = 1638 (5.6%). ! ! (4510) IPImageImpl.ApplyMASKSTROKE = 19399 (66.4%). ! ! ! ! IPImageImpl.ApplyMASKSTROKE (1 refs) = 0, 19399 (66.4%). ! ! ! (17569) IPImageImpl.MaskStroke = 19399 (66.4%). ! ! ! ! ! ! IPImageImpl.MaskStroke (1 refs) = 1, 19398 (66.4%). ! ! ! (17379) ImagerImpl.MaskStroke = 9414 (32.2%). ! ! ! (17436) ImagerImpl.MaskStrokeTrajectory = 9982 (34.1%). ! ! ! ! ! ! ImagerImpl.MaskStrokeTrajectory (1 refs) = 0, 9982 (34.1%). ! ! ! ! (11749) ImagerRasterImpl.RasterMaskStroke = 9982 (34.1%). ! ! ! ! ! ! ! ImagerImpl.MaskStroke (1 refs) = 0, 9414 (32.2%). ! ! ! . (11395) ImagerRasterImpl.RasterMaskStroke = 9414 (32.2%). ! ! ! . ! ! ! ImagerRasterImpl.RasterMaskStroke (2 refs) = 3, 19393 (66.4%). ! ! ! (15692) ImagerRasterImpl.MaskRuns = 19393 (66.4%). ! ! ! ! ! ! ImagerRasterImpl.MaskRuns (1 refs) = 0, 19393 (66.4%). ! ! ! (11162) ImagerRasterImpl.RunsFromPath = 19393 (66.4%). ! ! ! ! ! ! ImagerRasterImpl.RunsFromPath (1 refs) = 2, 19391 (66.4%). ! ! ! (9611) ImagerScanConverterImpl.CreatePath = 13839 (47.4%). ! ! ! (10728) ImagerRasterImpl.maskRunsAction = 5551 (19.0%). ! ! ! ! ! ! ImagerScanConverterImpl.CreatePath (1 refs) = 5, 13834 (47.4%). ! ! ! ! (16408) ImagerPathImpl.Transform = 13725 (47.0%). ! ! ! ! ! ! ! ImagerRasterImpl.maskRunsAction (1 refs) = 1, 5550 (19.0%). ! ! ! (11063) ImagerPDImpl.MaskRuns = 5550 (19.0%). ! ! ! ! ! ! ImagerPDImpl.MaskRuns (1 refs) = 2, 5548 (19.0%). ! ! ! (26936) PDFileWriterImpl.MaskRunGroup = 5548 (19.0%). ! ! ! ! ! ! PDFileWriterImpl.MaskRunGroup (1 refs) = 0, 5548 (19.0%). ! ! ! (16273) ImagerRasterImpl.runs = 5533 (18.9%). ! ! ! ! ! ! ImagerRasterImpl.runs (1 refs) = 1, 5532 (18.9%). ! ! ! (9976) ImagerScanConverterImpl.ConvertToRuns = 5532 (18.9%). ! ! ! ! ! ! ImagerScanConverterImpl.ConvertToRuns (1 refs) = 1, 5531 (18.9%). ! ! ! (24103) ImagerScanConverterImpl.Convert = 5531 (18.9%). ! ! ! ! ! ! ImagerScanConverterImpl.Convert (1 refs) = 3751, 1780 (12.8%) (18.9%). ! ! ! (19995) ImagerScanConverterImpl.InitialBucketTable = 495 (1.6%). ! ! ! (22595) ImagerScanConverterImpl.Result = 1154 (3.9%). ! ! ! ! ! ! ImagerScanConverterImpl.Result (1 refs) = 230, 924 (3.9%). ! ! ! (23626) ImagerScanConverterImpl.ShellSort = 567 (1.9%). ! ! ! (24026) PDFileWriterImpl.CaptureRun = 357 (1.2%). ! ! ! ! ! IPImageImpl.ApplyLINETO (1 refs) = 238, 1400 (5.6%). ! ! . (14021) IPImageImpl.PopVec = 409 (1.4%). ! ! . (14044) IPStackImpl.ExtendTrajectory = 385 (1.3%). ! ! . ! ! ImagerPathImpl.Transform (2 refs) = 2, 14003 (47.9%). ! ! (6865) ImagerImpl.path = 7029 (24.0%). ! ! (6865) IPImageImpl.path = 6645 (22.7%). ! ! ! ! ImagerImpl.path (1 refs) = 0, 7029 (24.0%). ! ! ! (11614) ImagerPathImpl.MapTrajectory = 7029 (24.0%). ! ! ! ! ! ! ImagerPathImpl.MapTrajectory (1 refs) = 0, 7029 (24.0%). ! ! ! (9128) ImagerPathImpl.Map = 7029 (24.0%). ! ! ! ! ! ! ImagerPathImpl.Map (1 refs) = 208, 6821 (24.0%). ! ! ! (8902) ImagerPathImpl.TransformLineTo = 6808 (23.3%). ! ! ! ! ! IPImageImpl.path (1 refs) = 1, 6644 (22.7%). ! ! . (17250) IPStackImpl.DoTopPath = 6644 (22.7%). ! ! . ! ! IPStackImpl.DoTopPath (2 refs) = 189, 6735 (23.7%). ! ! . (8349) ImagerPathImpl.TransformLineTo = 6732 (23.0%). ! ! . ! ! ImagerPathImpl.TransformLineTo (3 refs) = 782, 12771 (2.6%) (46.4%). ! ! . (5944) ImagerScanConverterImpl.Line = 5148 (17.6%). ! ! . (5960) ImagerTransformationImpl.Transform = 406 (1.3%). ! ! . (5985) ImagerStrokeImpl.Line = 7026 (24.0%). ! ! . ! ! . ImagerStrokeImpl.Line (1 refs) = 1495, 5531 (5.1%) (24.0%). ! ! . (6572) ImagerStrokeImpl.FindVertex = 1259 (4.3%). ! ! . (6633) ImagerStrokeImpl.FindVertex = 1255 (4.2%). ! ! . (6808) ImagerPathImpl.TransformMoveTo = 867 (2.9%). ! ! . (6885) ImagerPathImpl.TransformMoveTo = 1123 (3.8%). ! ! . ! ! . ImagerStrokeImpl.FindVertex (2 refs) = 1232, 1282 (4.2%) (8.6%). ! ! . (1735) Vector2Impl.Dot = 492 (1.6%). ! ! . (1831) Vector2Impl.Dot = 449 (1.5%). ! ! . ! ! . Vector2Impl.Dot (2 refs) = 941 (3.2%). ! ! . ! ! ImagerPathImpl.TransformMoveTo (4 refs) = 239, 1762 (6.8%). ! ! . (5796) ImagerScanConverterImpl.Close = 1650 (5.6%). ! ! . ! ! ImagerScanConverterImpl.Close (2 refs) = 131, 1527 (5.6%). ! ! . (16090) ImagerScanConverterImpl.Line = 1391 (4.7%). ! ! . ! ! ImagerScanConverterImpl.Line (2 refs) = 2025, 4514 (6.9%) (22.3%). ! ! (15658) ImagerScanConverterImpl.AppendSegment = 4514 (15.4%). ! ! ! ! ImagerScanConverterImpl.AppendSegment (1 refs) = 3884, 630 (13.3%) (15.4%). ! ! (9141) AllocatorImpl.NewSystemObject = 630 (2.1%). ! ! ! IPMasterImpl.GetToken (1 refs) = 807, 1496 (2.7%) (7.8%). ! (19025) IOCommonImpl.GetIndex = 521 (1.7%). ! (19059) IOCommonImpl.GetChar = 590 (2.0%). ! (19113) IOCommonImpl.GetChar = 385 (1.3%). ! ! IOCommonImpl.GetChar (2 refs) = 266, 709 (3.3%). ! (10341) FileStreamImpl.GetChar = 709 (2.4%). ! CollectorImpl.BackgroundCollector (1 refs) = 0, 3442 (11.7%). . (4817) ZCTImpl.ScanTheFrameHeap = 1097 (3.7%). . (4849) ZCTImpl.MapReclaimableObjects = 2083 (7.1%). . . ZCTImpl.MapReclaimableObjects (1 refs) = 278, 1805 (7.1%). . ! (5290) ReclaimerImpl.Reclaim = 1194 (4.0%). . ! (5474) ZCTImpl.PullNextEntry = 526 (1.8%). . ! . ! ReclaimerImpl.Reclaim (1 refs) = 545, 649 (4.0%). . ! (2617) AllocatorImpl.FreeObject = 649 (2.2%). . ! . ZCTImpl.ScanTheFrameHeap (1 refs) = 1, 1096 (3.7%). . (4440) RTFrameHeapSnapshotImpl.MapUncountedBodies = 916 (3.1%). . . RTFrameHeapSnapshotImpl.MapUncountedBodies (1 refs) = 41, 875 (3.1%). . (1207) ZCTImpl.ConservativeScanner = 875 (2.9%). . . ZCTImpl.ConservativeScanner (1 refs) = 715, 160 (2.4%) (2.9%). . AllocatorImpl.NewSystemObject (9 refs) = 654, 359 (2.2%) (3.4%). (9534) StorageAccountingImpl.ConsiderCollection = 357 (1.2%). The remaining procedures had less than 873 wakeups.