GGPerformance.tioga
Created by Bier on June 20, 1986 12:24:35 pm PDT
Dated Benchmarks. All times in milli-seconds.
Note: Many of the benchmarks below require that
bringover /ivy/bier/top/GargoylePic.df
has been performed.
Note: to do performance testing:
Turn off color display
Open to full left column with control panel on top (except where noted otherwise)
Turn off Spy; clear all Spy breakpoints
Garbage collector to 512000 GC interval
Close WatchTool or other screen active viewers
Undo Performance
1) Rollback. WatchTool closed. Minimal checkpoint. Color display off.
FastPlayback BigScripts.script. 1873254 bytes 14-Aug-88 18:52:48 PDT.
Record total time.
August 28, 1988 9 pm PDT. Pier. Independence. History size 2.
Finished FastPlayback of ///7.0/Gargoyle/BigScripts.script in time (00:12:49)
August 29, 1988 9:39:36 am PDT. Pier. Independence. History completely off.
← GGHistoryImpl.noHistory ← TRUE
Finished FastPlayback of ///7.0/Gargoyle/BigScripts.script in time (00:11:16)
History Overhead: 1.137574 (~14%)
August 30, 1988 10:57:36 am PDT Pier. Independence. History size 10000.
Finished FastPlayback of ///7.0/Gargoyle/BigScripts.script in time (00:13:06)
roughly equal to performance with HistorySize=2, because most scripts do Clears which quickly unlink history lists.
GC interval 512,000.
August 30, 1988 11:37:36 am. Pier. Independence. History size 2.
Finished FastPlayback of ///7.0/Gargoyle/BigScripts.script in time (00:12:12)
August 30, 1988 11:54:12 am. Pier. Independence. History completely off.
← GGHistoryImpl.noHistory ← TRUE
Finished FastPlayback of ///7.0/Gargoyle/BigScripts.script in time (00:10:27)
History Overhead: 1.167464 (~17%)
1) Rollback. WatchTool closed. Minimal checkpoint. Color display off. GC interval 512,000.
FastPlayback PerverseHouse.script. 1159 bytes 30-Aug-88 16:57:04 PDT
Record total time. Script forces about 22 full captures of 266 objects. Bad case.
August 30, 1988 5:28:58 pm PDT. Pier. Independence. History size 2.
Finished playback of ///7.0/Gargoyle/PerverseHouse.script in time (00:03:41)
August 30, 1988 5:29:21 pm PDT. Pier. Independence. History completely off.
← GGHistoryImpl.noHistory ← TRUE
Finished FastPlayback of ///7.0/Gargoyle/PerverseHouse.script in time (00:02:45)
History Overhead: 1.339394 (~34%)
UserInput Performance (obsolete)
1) Run MenuTest4.script. Record UserInput time.
April 2, 1987, Bier, Independence
UserInput (Playback). starts: 56. total: 10637. avg: 189. min: 0. max: 2676, index: 44
UserInput (Fastplay). starts: 58. total: 3693. avg: 63. min: 0. max: 996, index: 44
UserInput (Playback). starts: 55. total: 5988. avg: 108. min: 0. max: 1969, index: 44
April 2, 1987, Bier, Independence (using RefTab).
UserInput (Playback). starts: 56. total: 10655. avg: 190. min: 0. max: 2567, index: 44
UserInput (Fastplay). starts: 58. total: 3805. avg: 65. min: 0. max: 1193, index: 44
April 2, 1987, Bier, Independence (measuring the RefTab call but not the queuing delay).
UserInput. starts: 56. total: 6. avg: 0. min: 0. max: 0, index: 1
April 2, 1987, Pier, Independence (measuring the old giant SELECT statement but not the queuing delay).
UserInput (Fastplay). starts: 58. total: 25. avg: 0. min: 0. max: 1, index: 6
UserInput. (Playback). starts: 55. total: 26. avg: 0. min: 0. max: 2, index: 8
Gravity Performance
1) Run ArcBench.script. Tests gravity speed for Arcs.
Using Spline Path Code (arcbench.gargoyle):
Map. started: 1001. total: 70494. avg: 70. min: 17. max: 514, index: 112, June 20, 1986, Bier
Using Code Specially Designed for Arcs:
Map. started: 1001. total: 30004. avg: 29. min: 18. max: 693, index: 171, June 20, 1986, Bier
Caching BoundBoxes:
Map. started: 1001. total: 9090. avg: 9. min: 3. max: 617, June 20, 1986, Bier
Map. started: 1001. total: 7513. avg: 7. min: 4. max: 125, June 30, 1986, Bier on Langley
Map. starts: 1001. total: 6317. avg: 6. min: 3. max: 52, September 30, 1986, Bier, Independence
Multi-Gravity becomes the new standard, October 8, 1986, Bier, Kearsarge
MultiMap. starts: 1001. total: 21313. avg: 21. min: 6. max: 644
UniMap. starts: 1001. total: 6607. avg: 6. min: 3. max: 498
After putting in some storage pools, October 8, 1986, Bier, Kearsarge:
MultiMap. starts: 1001. total: 7068. avg: 7. min: 4. max: 64, index: 476
UniMap. starts: 1001. total: 6186. avg: 6. min: 3. max: 41, index: 634
With object-oriented Outlines, November 24, 1986, Bier, Independence:
MultiMap. starts: 1030. total: 8974. avg: 8. min: 0. max: 165, index: 670
UniMap. starts: 1001. total: 7338. avg: 7. min: 3. max: 139, index: 423
In Cedar7.0.
MultiMap. starts: 1001. total: 10638. avg: 10. min: 5. max: 629, index: 966
UniMap. starts: 1001. total: 8609. avg: 8. min: 4. max: 571, index: 482
Script time: 31 seconds. This result seems quite repeatable. March 3, 1987, Bier, QueenFish
January 13, 1988, Pier, Independence. Objectified trajectories and cached bound boxes
MultiMap. starts: 1001. total: 16252. avg: 16. min: 10. max: 821, index: 440
February 18, 1988, Bier, QueenFish. After using dTol trick to speed up intersection testing.
MultiMap. starts: 1001. total: 13825. avg: 13. min: 10. max: 23, index: 752
MultiMap. starts: 1001. total: 13693. avg: 13. min: 10. max: 27, index: 329
February 24, 1988, Bier, QueenFish. Faster Bound-Box tests and curve sorting.
MultiMap. starts: 1001. total: 12180. avg: 12. min: 9. max: 19, index: 932
February 24, 1988, Bier, QueenFish. Bound box check for outlines and faster procedure calls.
MultiMap. starts: 1001. total: 6610. avg: 6. min: 3. max: 14, index: 786
November 1, 1989, Bier, QueenFish.
MultiMap. starts: 1001. total: 13465. avg: 13. min: 10. max: 34, index: 934
MultiMap. starts: 1001. total: 13435. avg: 13. min: 10. max: 22, index: 1
November 22, 1989, Bier, Pippin, NoOpt
MultiMap. starts: 1001. total: 7389. avg: 7. min: 4. max: 39
November 22, 1989, Pier, Pierrot, Opt
MultiMap. starts: 1001. total: 6015. avg: 6. min: 4. max: 62
MultiMap. starts: 1001. total: 5818. avg: 5. min: 3. max: 54
April 16, 1990, Bier, Pippin. Nitro.
MultiMap. n: 1001. total: 5736. avg: 5. range: [4..53], worst: 52
MultiMap. n: 1001. total: 5285. avg: 5. range: [3..55], worst: 3
September 7, 1990, Pier. Pierrot. Imager and FP recompiled with "f" switch
MultiMap. n: 1001. total: 4724. avg: 4. range: [2..44], worst: 280
MultiMap. n: 1001. total: 5046. avg: 5. range: [3..27], worst: 170
2) Run GravityTest1.script. Gravity in windowhacker.
Using Spline Path Code:
Map. started: 1001. total: 363847. avg: 363. min: 171. max: 1375, June 20, 1986, Bier
Using Code Specially Designed for Arcs:
Map. started: 1001. total: 260051. avg: 259. min: 172. max: 1083, June 20, 1986, Bier
Caching BoundBoxes:
Map. started: 1001. total: 65513. avg: 65. min: 11. max: 733, June 20, 1986, Bier
Map. started: 1001. total: 71334. avg: 71. min: 41. max: 248, June 30, 1986, Bier, Langley
Map. starts: 1001. total: 42324. avg: 42. min: 14. max: 230, September 30, 1986, Bier, Independence
Multi Gravity (with n = 5) October 1, 1986, Bier, Independence:
MultiMap. started: 1001. total: 61565. avg: 61. min: 11. max: 952, June 20, 1986, Bier
MultiMap. started: 1001. total: 70668. avg: 70. min: 40. max: 280, June 30, 1986, Bier, Langley
MultiMap. starts: 1001. total: 40567. avg: 40. min: 12. max: 726.
Multi-Gravity becomes standard, October 8, 1986, Bier, Kearsarge
MultiMap. starts: 1001. total: 47091. avg: 47. min: 15. max: 245, index: 39
UniMap. starts: 1001. total: 43681. avg: 43. min: 14. max: 227, index: 39
Object-oriented outlines. Why is this slower?, November 24, 1986, Bier, Independence
Tested 1001 total points. 910 unihits. 910 multihits. 173 differences
MultiMap. starts: 1001. total: 56854. avg: 56. min: 12. max: 261, index: 676
UniMap. starts: 1001. total: 53148. avg: 53. min: 11. max: 528, index: 434
Cedar7.0. March 3, 1987, Bier, QueenFish.
Tested 1001 total points. 869 unihits. 869 multihits. 205 differences
MultiMap. starts: 1001. total: 57672. avg: 57. min: 19. max: 780, index: 651
UniMap. starts: 1001. total: 54543. avg: 54. min: 16. max: 757, index: 336
April 7, 1987, Bier, QueenFish
MultiMap. starts: 1001. total: 61366. avg: 61. min: 19. max: 806, index: 995
UniMap. starts: 1001. total: 57250. avg: 57. min: 16. max: 730, index: 918
August 10, 1987, Bier, QueenFish. Using vector subtraction to compute curve normals. Unfortunately, about 32% of the time for gravity now goes into performing this subtraction.
MultiMap. starts: 1001. total: 84167. avg: 84. min: 22. max: 916, index: 97
UniMap. starts: 1001. total: 48065. avg: 48. min: 18. max: 922, index: 315
January 13, 1988, Pier, Independence. Object-oriented trajectories and slices caching bound boxes.
MultiMap. starts: 1001. total: 79049. avg: 78. min: 35. max: 846, index: 648, overflows: 0
February 18, 1988, Bier, QueenFish. With dTol intersection pruning. Still allocates 10,000 words per second.
MultiMap. starts: 1001. total: 74627. avg: 74. min: 34. max: 1860, index: 366
MultiMap. starts: 1001. total: 72938. avg: 72. min: 40. max: 300, index: 514
February 24, 1988, Bier, QueenFish. Faster boundbox and curve sort.
MultiMap. starts: 1001. total: 53881. avg: 53. min: 30. max: 235, index: 923
MultiMap. starts: 500. total: 26915. avg: 53. min: 30. max: 112, index: 130
February 24, 1988, Bier, QueenFish. Bounding box tests for Outlines and faster procedure calls.
MultiMap. starts: 1001. total: 37274. avg: 37. min: 14. max: 121, index: 495
November 1, 1989, Bier, QueenFish.
MultiMap. starts: 1001. total: 35293. avg: 35. min: 18. max: 129, index: 1
MultiMap. starts: 1001. total: 35416. avg: 35. min: 18. max: 126, index: 1
November 22, 1989, Pier, Pierrot, opt. Script changed to MergeShapes windowhacker
MultiMap. starts: 1001. total: 21648. avg: 21. min: 7. max: 773, index: 856
MultiMap. starts: 1001. total: 22499. avg: 22. min: 7. max: 2196, index: 949
April 16, 1990, Bier, Pippin
MultiMap. n: 1001. total: 13309. avg: 13. range: [7..57], worst: 66
April 17, 1990, Bier, Pippin
MultiMap. n: 1001. total: 13348. avg: 13. range: [7..69], worst: 1
July 25, 1990, Bier, Pippin
MultiMap. n: 1001. total: 13563. avg: 13. range: [5..136], worst: 1
July 24, 1990, Bier, Lightspeed
MultiMap. n: 1001. total: 5329. avg: 5. range: [2..31], worst: 325
3) Playback TrajAlignTest.script. Gravity with lots of alignments.
January 5, 1987, Bier, Queenfish. With precomputed alignment intersections, on-the-fly traj intersections.
MultiMap. starts: 1001. total: 33395. avg: 33. min: 20. max: 236, index: 685
UniMap. starts: 1001. total: 24142. avg: 24. min: 19. max: 103, index: 327
MultiMap. starts: 1001. total: 28726. avg: 28. min: 15. max: 198, index: 918
UniMap. starts: 1001. total: 27859. avg: 27. min: 19. max: 207, index: 690
March 3, 1987, Bier, Queenfish. Cedar7.0. With all intersections computed on-the-fly.
MultiMap. starts: 1001. total: 14480. avg: 14. min: 5. max: 169, index: 854
UniMap. starts: 1001. total: 10333. avg: 10. min: 4. max: 146, index: 267
April 27, 1987, Bier, Queenfish. Perhaps the MultiMap speed-up is due to computing midpoints on the fly.
MultiMap. starts: 1001. total: 11903. avg: 11. min: 4. max: 442, index: 565
UniMap. starts: 1001. total: 7312. avg: 7. min: 3. max: 134, index: 558
April 27, 1987, Bier, Queenfish. Using Nearest neighbors Merge. UniMap should be unaffected. MultiMap should be a little faster. Clearly, the difference is not significant.
MultiMap. starts: 1001. total: 11536. avg: 11. min: 4. max: 215, index: 531
UniMap. starts: 1001. total: 6877. avg: 6. min: 3. max: 125, index: 4
August 10, 1987, Bier, Queenfish. Routine test.
MultiMap. starts: 1001. total: 13316. avg: 13. min: 5. max: 948, index: 316
UniMap. starts: 1001. total: 8526. avg: 8. min: 3. max: 1089, index: 101
MultiMap. starts: 1001. total: 13196. avg: 13. min: 4. max: 1008, index: 134
UniMap. starts: 1001. total: 8195. avg: 8. min: 3. max: 857, index: 341
August 11, 1987, Eisenman, HMSAjax. New normal computation.
MultiMap. starts: 1001. total: 14839. avg: 14. min: 4. max: 899, index: 165
UniMap. starts: 1001. total: 7407. avg: 7. min: 3. max: 24, index: 940
January 13, 1988, Pier, Independence. Objectified trajectories and cached bound boxes
MultiMap. starts: 1001. total: 11934. avg: 11. min: 6. max: 768, index: 703
February 18, 1988, Bier, QueenFish. dTol intersection pruning.
MultiMap. starts: 1001. total: 11563. avg: 11. min: 6. max: 48, index: 216
February 24, 1988, Bier, QueenFish.
MultiMap. starts: 1001. total: 9708. avg: 9. min: 5. max: 48, index: 853
MultiMap. starts: 1001. total: 9564. avg: 9. min: 5. max: 45, index: 853
November 1, 1989, Bier, QueenFish
MultiMap. starts: 1001. total: 12640. avg: 12. min: 8. max: 46, index: 929
MultiMap. starts: 1001. total: 12546. avg: 12. min: 8. max: 46, index: 929
November 22, 1989, Pier, Pierrot, Opt.
MultiMap. starts: 1001. total: 5491. avg: 5. min: 3. max: 58, index: 400
MultiMap. starts: 1001. total: 5527. avg: 5. min: 3. max: 43, index: 1
April 17, 1990, Bier, Pippin.
MultiMap. n: 1001. total: 5058. avg: 5. range: [3..54], worst: 780
July 25, 1990, Bier, Pippin
MultiMap. n: 1001. total: 4996. avg: 4. range: [2..80], worst: 823
July 24, 1990, Bier, Lightspeed
MultiMap. n: 1001. total: 2096. avg: 2. range: [1..40], worst: 859
4) Playback BezierHitTest.script. Record the CurveClosestPoint line in the Typescript. Tests gravity with various Bezier splines.
December 2, 1986, Bier
CurveClosestPoint. starts: 46. total: 25588. avg: 556. min: 242. max: 950, index: 20,
December 2, 1986, Bier
CurveClosestPoint. starts: 41. total: 23282. avg: 567. min: 245. max: 1148, index: 38 -- this test is not very repeatable because of Queue optimization.
CurveClosestPoint. starts: 41. total: 2385. avg: 58. min: 7. max: 374, index: 29 -- using root-finding instead of sub-division.
December 2, 1986, Bier
CurveClosestPoint. starts: 41. total: 1671. avg: 40. min: 6. max: 151, index: 1. -- finding only the roots in [0..1],
December 29, 1986, Bier
CurveClosestPoint. starts: 41. total: 994. avg: 24. min: 6. max: 97, index: 23 -- finding only the roots in [0..1] for all derivatives of the polynomial. epsilon = tiny. It's even more stable.
January 19, 1987, Bier, Queenfish
CurveClosestPoint. starts: 41. total: 899. avg: 21. min: 2. max: 67, index: 17,
March 3, 1987, Bier, Queenfish. Cedar7.0.
CurveClosestPoint. starts: 41. total: 1143. avg: 27. min: 3. max: 174, index: 39
August 10, 1987, Bier, Queenfish. Routine test.
CurveClosestPoint. starts: 41. total: 877. avg: 21. min: 2. max: 56, index: 25.
January 13, 1988, Pier, Independence. Objectified trajectories and cached bound boxes
CurveClosestPoint. starts: 41. total: 881. avg: 21. min: 2. max: 66, index: 25
February 24, 1988, Bier, Queenfish. Faster bound box test and curve sort.
CurveClosestPoint. starts: 41. total: 852. avg: 20. min: 2. max: 48, index: 25
November 1, 1989, Bier, Queenfish.
CurveClosestPoint. starts: 33. total: 622. avg: 18. min: 2. max: 49, index: 17
CurveClosestPoint. starts: 33. total: 623. avg: 18. min: 2. max: 49, index: 17
April 17, 1990, Bier, Pippin
CurveClosestPoint. n: 32. total: 500. avg: 15. range: [1..181], worst: 1
July 25, 1990, Bier, Pippin
CurveClosestPoint. n: 31. total: 275. avg: 8. range: [1..38], worst: 1
July 24, 1990, Bier, Lightspeed
CurveClosestPoint. n: 31. total: 100. avg: 3. range: [0..9], worst: 5
5) Playback NaturalHitTest.script. Record the CurveClosestPoint line in the Typescript.
CurveClosestPoint. starts: 28. total: 17417. avg: 622. min: 183. max: 1060, index: 14
CurveClosestPoint. starts: 51. total: 3987. avg: 78. min: 1. max: 162, index: 33 -- using root-finding. Not very stable however.
December 2, 1986?
CurveClosestPoint. starts: 28. total: 2213. avg: 79. min: 18. max: 229, index: 10 -- using subdivision with tolerance = 1 pixel. At least it's stable.
December 29, 1986. Bier, Queenfish.
CurveClosestPoint. starts: 28. total: 2545. avg: 90. min: 18. max: 231, index: 18 -- using subdivision with tolerance = 1 pixel.
January 19, 1987, Bier, Queenfish
CurveClosestPoint. starts: 28. total: 972. avg: 34. min: 0. max: 222, index: 27 -- finding roots in [0..1] at all levels. Accurate and fast. Hurrah.
CurveClosestPoint. starts: 28. total: 853. avg: 30. min: 0. max: 105, index: 28.
March 3, 1987, Bier, Queenfish. Cedar7.0
CurveClosestPoint. starts: 28. total: 816. avg: 29. min: 0. max: 108, index: 14
August 10, 1987, Bier, Queenfish. Cedar7.0.5
CurveClosestPoint. starts: 27. total: 759. avg: 28. min: 1. max: 58, index: 26
January 13, 1988, Pier, Independence. Objectified trajectories and cached bound boxes
CurveClosestPoint. starts: 27. total: 777. avg: 28. min: 0. max: 59, index: 16
February 18, 1988, Bier, QueenFish. dTol intersection pruning.
CurveClosestPoint. starts: 41. total: 863. avg: 21. min: 2. max: 49, index: 25
November 1, 1989, Bier, QueenFish.
CurveClosestPoint. starts: 27. total: 687. avg: 25. min: 0. max: 55, index: 27
CurveClosestPoint. starts: 24. total: 540. avg: 22. min: 0. max: 53, index: 23,
April 17, 1990, Bier, Pippin
CurveClosestPoint. n: 27. total: 325. avg: 12. range: [0..26], worst: 9
July 24, 1990, Bier, Lightspeed
CurveClosestPoint. n: 27. total: 125. avg: 4. range: [0..11], worst: 3
September 7, 1990, Pier, Pierrot. Imager and FP recompiled with "f" switch. GCOff
CurveClosestPoint. n: 24. total: 273. avg: 11. range: [0..34], worst: 5
CurveClosestPoint. n: 24. total: 203. avg: 8. range: [0..27], worst: 8
CurveClosestPoint. n: 27. total: 257. avg: 9. range: [0..21], worst: 9
6) Playback KnotchedGrid.script. Record both MultiMap times. Many lines and circles.
Bier, December 30, 1986, Queenfish.
Lines. MultiMap. starts: 6. total: 1749. avg: 291. min: 166. max: 430, index: 2
Circles. MultiMap. starts: 6. total: 667. avg: 111. min: 89. max: 165, index: 4
Bier, December 30, 1986, Queenfish. After postponing the SqRt function used to find the distance from intersection points to the testpoint.
Lines. MultiMap. starts: 6. total: 1212. avg: 202. min: 134. max: 269, index: 2
Circles. MultiMap. starts: 6. total: 523. avg: 87. min: 59. max: 174, index: 4
Notes: Running Spy on the Lines example shows that 57.4% of the time is spent in ProcessPoint, 5.9% in FindIntersections, 7.2% is spent NARROWing shapes into AlignmentPoints.
Lines. MultiMap. starts: 6. total: 1419. avg: 236. min: 118. max: 393, index: 4
Circles. MultiMap. starts: 6. total: 493. avg: 82. min: 59. max: 140, index: 4, January 5, 1987. Bier, Queenfish
Performing all intersection calculations on the fly. January 5, 1987, Bier, QueenFish. 50.9% of this is for computing Circle-Circle intersections. This seems high.
Lines. MultiMap. starts: 6. total: 1093. avg: 182. min: 86. max: 235, index: 3
Circles. MultiMap. starts: 6. total: 1018. avg: 169. min: 30. max: 625, index: 2
Twice as many intersections were being performed as necessary. These are the times after the fix. January 5, 1987, Bier, QueenFish.
Lines. MultiMap. starts: 6. total: 427. avg: 71. min: 28. max: 198, index: 2
Circles. MultiMap. starts: 6. total: 882. avg: 147. min: 19. max: 587, index: 3
These times are not very repeatable. All of the measures were taken January 5, 1987, Bier, Queenfish. I suspect that the 147 measure for Circles was inflated by garbage collection.
Lines. MultiMap. starts: 6. total: 590. avg: 98. min: 27. max: 188, index: 3
Circles. MultiMap. starts: 6. total: 326. avg: 54. min: 20. max: 127, index: 4
Lines. MultiMap. starts: 6. total: 502. avg: 83. min: 27. max: 144, index: 6
Circles. MultiMap. starts: 6. total: 315. avg: 52. min: 19. max: 122, index: 4
Lines. MultiMap. starts: 6. total: 590. avg: 98. min: 27. max: 189, index: 3
Circles. MultiMap. starts: 6. total: 265. avg: 44. min: 18. max: 72, index: 4
Using a more careful test for line parallelism. No noticeable change. January 5, 1987, Bier, Queenfish.
Lines. MultiMap. starts: 6. total: 526. avg: 87. min: 28. max: 192, index: 2
Circles. MultiMap. starts: 6. total: 316. avg: 52. min: 18. max: 122, index: 4
Lines. MultiMap. starts: 6. total: 540. avg: 90. min: 28. max: 191, index: 2.
Circles. MultiMap. starts: 6. total: 275. avg: 45. min: 18. max: 77, index: 4
Cedar7.0. March 3, 1987, Bier, Queenfish
Lines. starts: 6. total: 514. avg: 85. min: 29. max: 185, index: 3
Circles. starts: 6. total: 413. avg: 68. min: 19. max: 135, index: 4.
April 27, 1987, Bier, Queenfish. Using old merge. 5 point overflows.
Lines. MultiMap. starts: 6. total: 477. avg: 79. min: 30. max: 197, index: 2
Circles. MultiMap. starts: 6. total: 385. avg: 64. min: 22. max: 153, index: 4
Lines. MultiMap. starts: 6. total: 492. avg: 82. min: 30. max: 195, index: 2
Circles. MultiMap. starts: 6. total: 388. avg: 64. min: 19. max: 137, index: 4
April 27, 1987, Bier, Queenfish. Using nearest neighbors merge. No overflows.
Lines. MultiMap. starts: 6. total: 576. avg: 96. min: 46. max: 188, index: 2
Circles. MultiMap. starts: 6. total: 465. avg: 77. min: 20. max: 188, index: 3
Lines. MultiMap. starts: 6. total: 489. avg: 81. min: 30. max: 188, index: 2
Circles. MultiMap. starts: 6. total: 473. avg: 78. min: 20. max: 187, index: 2
January 13, 1988, Pier, Independence. Objectified trajectories and cached bound boxes
Bogus differences or great improvement ??
Lines. MultiMap. starts: 6. total: 109. avg: 18. min: 10. max: 31, index: 4
Circles. MultiMap. starts: 6. total: 240. avg: 40. min: 7. max: 103, index: 6
January 29, 1988, Bier, QueenFish. I can't repeat your results, Ken.
Lines. MultiMap. starts: 6. total: 372. avg: 62. min: 30. max: 116, index: 3
Circles. MultiMap. starts: 6. total: 301. avg: 50. min: 21. max: 74, index: 4
Lines. MultiMap. starts: 6. total: 478. avg: 79. min: 47. max: 135, index: 5
Circles. MultiMap. starts: 6. total: 312. avg: 52. min: 21. max: 75, index: 4
February 18, 1988, Bier, QueenFish. dTol intersection pruning.
Lines. MultiMap. starts: 6. total: 92. avg: 15. min: 11. max: 19, index: 2
Circles. MultiMap. starts: 6. total: 99. avg: 16. min: 12. max: 19, index: 4
February 24, 1988, Bier, QueenFish. Faster bounding boxes and curve sorting.
Lines. MultiMap. starts: 6. total: 69. avg: 11. min: 8. max: 14, index: 3
Circles. MultiMap. starts: 6. total: 86. avg: 14. min: 11. max: 16, index: 6.
November 1, 1989, Bier, QueenFish.
Lines. MultiMap. starts: 6. total: 86. avg: 14. min: 13. max: 15, index: 4
Circles. MultiMap. starts: 6. total: 98. avg: 16. min: 14. max: 18, index: 4
April 18, 1990, Bier, Pippin
Lines. MultiMap. n: 6. total: 39. avg: 6. range: [5..8], worst: 2
Circles. MultiMap. n: 6. total: 41. avg: 6. range: [5..8], worst: 2
7) Play MidpointTest.script. Record MultiMap and UniMap times. Loads a picture of diagonal lines and runs TestGravity. Note: Celtics reports that only half of the GGTraj.NearestJoint calls are culled by the bounding box test. This is probably due to the long diagonal lines. Since OutlineClosestPoint accounts for 67.4% of the time, this case would be greatly helped by computing joints on the fly.
April 7, 1987, Bier, QueenFish
MultiMap. starts: 400. total: 47987. avg: 119. min: 37. max: 726, index: 343
UniMap. starts: 400. total: 55979. avg: 139. min: 57. max: 757, index: 19
MultiMap. starts: 400. total: 48321. avg: 120. min: 38. max: 768, index: 150
UniMap. starts: 400. total: 55899. avg: 139. min: 58. max: 779, index: 132
April 7, 1987, Bier, QueenFish. Computing midpoints ahead of time. (GGSequence.JointsInSequence no longer checks for Obsolete sequences).
MultiMap. starts: 400. total: 43349. avg: 108. min: 47. max: 782, index: 100
UniMap. starts: 400. total: 47143. avg: 117. min: 54. max: 750, index: 176
April 7, 1987, Bier, QueenFish. Computing midpoints on the fly. GGSequence.JointsInSequence is still faster. MultiMap avg is about 20% faster. min is about 15% faster.
MultiMap. starts: 400. total: 36473. avg: 91. min: 40. max: 366, index: 377
UniMap. starts: 400. total: 46957. avg: 117. min: 52. max: 533, index: 3
January 13, 1988, Pier, Independence. Objectified trajectories and cached bound boxes
MultiMap. starts: 400. total: 45531. avg: 113. min: 41. max: 889, index: 90
February 18, 1988, Bier, QueenFish. dTol intersection pruning.
MultiMap. starts: 400. total: 41795. avg: 104. min: 39. max: 148, index: 199
February 24, 1988, Bier, QueenFish. Faster bound boxes and curve sorting.
MultiMap. starts: 400. total: 30339. avg: 75. min: 32. max: 115, index: 1
March 4, 1988, Bier, QueenFish. Faster procedure calls.
MultiMap. starts: 400. total: 27739. avg: 69. min: 20. max: 113, index: 17
November 1, 1989, Bier, QueenFish.
MultiMap. starts: 400. total: 30688. avg: 76. min: 20. max: 125, index: 1
MultiMap. starts: 400. total: 30497. avg: 76. min: 21. max: 127, index: 1
April 18, 1990, Bier, Pippin
MultiMap. n: 400. total: 9390. avg: 23. range: [7..76], worst: 170
July 24, 1990, Bier, Lightspeed
MultiMap. n: 400. total: 4534. avg: 11. range: [2..100], worst: 280
8) Play HorizontalBench.script. Record MultiMap and UniMap times. Loads a picture of horizontal lines and runs TestGravity. Sure enough, the bounding box test culls 9 out of 10 in this case. Spy reports that over 50% of the time is still spent in OutlineClosestPoint. The time for finding midpoints is small (about 1%).
April 7, 1987, Bier, QueenFish
MultiMap. starts: 400. total: 12609. avg: 31. min: 16. max: 157, index: 61
UniMap. starts: 400. total: 23218. avg: 58. min: 36. max: 228, index: 160
MultiMap. starts: 400. total: 12671. avg: 31. min: 16. max: 239, index: 119
UniMap. starts: 400. total: 22826. avg: 57. min: 36. max: 555, index: 54
April 7, 1987, Bier, QueenFish. Computing midpoints ahead of time. (GGSequence.JointsInSequence no longer checks for Obsolete sequences).
MultiMap. starts: 400. total: 17205. avg: 43. min: 29. max: 172, index: 81
UniMap. starts: 400. total: 19012. avg: 47. min: 35. max: 171, index: 168
MultiMap. starts: 400. total: 17350. avg: 43. min: 30. max: 482, index: 9
UniMap. starts: 400. total: 19280. avg: 48. min: 35. max: 208, index: 106
Tested 400 total points. 400 unihits. 400 multihits. 0 differences. I've forgotten why MultiMap is faster in this case.
April 7, 1987, Bier, QueenFish. Computing midpoints on the fly. GGSequence.JointsInSequence is still faster. Why the UniMap times differ is a mystery. I suspect it is because of the extra garbage collection due to the allocation of on-the-fly midpoints. The improvement to the MultiMap avg is about. 50%. The min improves by a factor of 2.
MultiMap. starts: 400. total: 12172. avg: 30. min: 15. max: 531, index: 7
UniMap. starts: 400. total: 21720. avg: 54. min: 35. max: 225, index: 309
MultiMap. starts: 400. total: 11902. avg: 29. min: 15. max: 172, index: 375
UniMap. starts: 400. total: 22343. avg: 55. min: 35. max: 525, index: 4
January 13, 1988, Pier, Independence. Objectified trajectories and cached bound boxes
MultiMap. starts: 400. total: 15032. avg: 37. min: 19. max: 805, index: 127
February 18, 1988, Bier, QueenFish. dTol intersection pruning.
MultiMap. starts: 400. total: 13849. avg: 34. min: 19. max: 58, index: 53
February 24, 1988, Bier, QueenFish. Faster bounding boxes and curve sorting.
MultiMap. starts: 400. total: 11818. avg: 29. min: 17. max: 54, index: 129
November 1, 1989, Bier, QueenFish.
MultiMap. starts: 400. total: 10350. avg: 25. min: 14. max: 58, index: 1
MultiMap. starts: 400. total: 10238. avg: 25. min: 14. max: 57, index: 1
April 18, 1990, Bier, Pippin
MultiMap. n: 400. total: 4210. avg: 10. range: [5..76], worst: 184
9) Control panel in separate column. Play DecimalGrid.script. Record MultiMap.
February 19, 1988, Bier, QueenFish
MultiMap. starts: 500. total: 18951. avg: 37. min: 32. max: 58, index: 196
February 24, 1988, Bier, QueenFish. Faster bounding boxes and curve sorting.
MultiMap. starts: 500. total: 14849. avg: 29. min: 27. max: 49, index: 123
MultiMap. starts: 500. total: 14690. avg: 29. min: 26. max: 49, index: 196
February 24, 1988, Bier, QueenFish. More direct procedure calls.
MultiMap. starts: 500. total: ?. avg: 21. min: 18. max: 42, index: ?.
March 3, 1988, Bier, QueenFish. dTol pruning for curves.
MultiMap. starts: 500. total: 9631. avg: 19. min: 16. max: 40, index: 196
November 1, 1989, Bier, QueenFish.
MultiMap. starts: 500. total: 16237. avg: 32. min: 30. max: 47, index: 39
MultiMap. starts: 500. total: 16184. avg: 32. min: 30. max: 46, index: 39
April 18, 1990, Bier, Pippin
MultiMap. n: 500. total: 6777. avg: 13. range: [11..62], worst: 327
10) Same as 9, but use PreferLines gravity.
February 24, 1988, Bier, QueenFish
MultiMap. starts: 500. total: 14532. avg: 29. min: 25. max: 49, index: 10
February 24, 1988, Bier, QueenFish. More direct procedure calls.
MultiMap. starts: 500. total: ?. avg: 21. min: 17. max: 41, index: ?
March 3, 1988, Bier, QueenFish. dTol pruning for curves.
MultiMap. starts: 500. total: 8536. avg: 17. min: 14. max: 32, index: 196
11) Same as 9, but use t = 11.11111. (PreferPoints)
February 24, 1988, Bier, QueenFish. More direct procedure calls.
MultiMap. starts: 500. total: ?. avg: 185. min: 167. max: 220, index: ?
March 3, 1988, Bier, QueenFish.
MultiMap. starts: 500. total: 56502. avg: 113. min: 40. max: 171, index: 231
12) Same as 10, but use t = 11.11111. (PreferLines)
February 24, 1988, Bier, QueenFish. More direct procedure calls.
MultiMap. starts: 500. total: ?. avg: 212. min: 173. max: 237, index: ?
March 3, 1988, Bier, QueenFish.
MultiMap. starts: 500. total: 42256. avg: 84. min: 51. max: 115, index: 437
Text Performance
June 20, 1986 5:08:11 pm PDT
1) Play teddy.script.
AddChar. started: 23. total: 33782. avg: 1468. min: 1384. max: 2923, index: 1
AddChar. started: 23. total: 37100. avg: 1613. min: 1475. max: 2991, index: 1, June 30, 1986, Bier on Langley
AddChar. started: 22. total: 4635. avg: 210. min: 144. max: 1287, index: 13, July 3, 1986, Bier, Langley
AddChar. starts: 22. total: 1403. avg: 63. min: 53. max: 81, index: 21, October 1, 1986, Bier, Independence
Cedar7.0. March 3, 1987, Bier, Queenfish
AddChar. starts: 22. total: 1903. avg: 86. min: 79. max: 143, index: 21
January 13, 1988, Pier, Independence. Objectified trajectories and cached bound boxes
AddChar. starts: 22. total: 2244. avg: 102. min: 87. max: 115, index: 22
November 1, 1989, Bier, Queenfish
AddChar. starts: 22. total: 2293. avg: 104. min: 88. max: 211, index: 13
AddChar. starts: 22. total: 2032. avg: 92. min: 88. max: 96, index: 22
January 31, 1992, Bier, duet
AddChar. n: 22. total: 613. avg: 27. range: [20..85], worst: 20
February 3, 1992, Bier, duet, unopt
AddChar. n: 22. total: 642. avg: 29. range: [23..79], worst: 2
AddChar. n: 22. total: 1148. avg: 52. range: [22..197], worst: 10
2) Play TextBench1.script. Type "Now is the time for all" in an empty viewer.
AddChar. started: 23. total: 1874. avg: 81. min: 68. max: 143, index: 1, June 30, 1986, Bier, Langley
AddChar. started: 22. total: 1472. avg: 66. min: 56. max: 77, index: 21, July 3, 1986, Bier, Langley
AddChar. starts: 22. total: 1389. avg: 63. min: 53. max: 72, index: 21, October 1, 1986, Bier, Independence
AddChar. starts: 22. total: 2471. avg: 112. min: 106. max: 121, index: 21.
Cedar7.0. March 3, 1987, Bier, Queenfish. Each AddChar is showing feedback that it doesn't have to.
January 13, 1988, Pier, Independence. Objectified trajectories and cached bound boxes
AddChar. starts: 22. total: 2244. avg: 102. min: 87. max: 115, index: 22
November 1, 1989, Bier, Queenfish
AddChar. starts: 22. total: 1982. avg: 90. min: 86. max: 94, index: 22
AddChar. starts: 22. total: 2052. avg: 93. min: 85. max: 134, index: 18
April 18, 1990, Bier, Pippin
AddChar. n: 22. total: 7421. avg: 337. range: [291..433], worst: 1
May 29, 1990, Bier, Pippin. Using bounding box refresh culling for $ObjectAdded events
AddChar. n: 22. total: 3413. avg: 155. range: [112..271], worst: 20
AddChar. n: 22. total: 3254. avg: 147. range: [113..205], worst: 13
July 24, 1990, Bier, Lightspeed
AddChar. n: 22. total: 1937. avg: 88. range: [59..211], worst: 9
AddChar. n: 22. total: 1432. avg: 65. range: [55..75], worst: 22
February 3, 1992, Bier, duet, unoptimized (~half of this time is painting)
AddChar. n: 22. total: 1172. avg: 53. range: [25..367], worst: 1
AddChar. n: 22. total: 1199. avg: 54. range: [22..226], worst: 16
3) Play CelticText.script (obsolete?). Record the time to do the SawText Finish.
April 20, 1987 7:06:46 pm PDT, Bier, Queenfish
SawTextFinish. starts: 5. total: 4445. avg: 889. min: 0. max: 2655, index: 5
April 20, 1987 7:07:04 pm PDT, Bier, Queenfish. After using UpdateForNewSlices to fix the bags instead of building them from scratch.
SawTextFinish. starts: 5. total: 3. avg: 0. min: 0. max: 1, index: 2
Adding Performance (See also "Setting Up Gravity Bags")
March 23, 1987, Bier, Queenfish. Notes from Spy:
When running the BigG benchmark, Spy reports the following times for StartAdd:
GGMouseEventImplA.StartMotion = 552 (26.6%)
GGAlignImpl.StaticToDynamicBags = 438 (21.1%)
GGAlignImpl.BuiltInFilters = 258 (12.4%)
GGAlignImpl.PointFireRule (1 ref) = 12, 228 (11.6%)
Lines2dImpl.CreateEmptyLine = 172 (8.3%)
GGMouseEventImplA.DuringDrag = 1435 (69.2%)
GGWindowImpl.RestoreScreenAndInvariants = 1337 (64.5%)
GGShapesImpl.DoDrawLine = 899 (43.4%)
GGRefreshImpl.DrawDragOverlayAux = 232 (11.2%).
In summary, by building the alignment bag incrementally, we could get another 20%. By building the foreground plane incrementally, we could get another 40%.
March 24, 1987, Bier, Queenfish. Notes from Spy:
Sure enough, by using FunctionCache to reduce foreground plane costs, I got about 37% performance improvement. Here's what Spy says now:
GGMouseEventImplA.ContinueMotion = 118 (35.0%)
GGAlignImpl.StaticToDynamicBags = 72 (21.4%)
GGAlignImpl.StaticToDynamicSceneBag = 33 (9.8%)
GGAlignImpl.RemoveMoving (2 refs) = 0, 46 (13.6%).
GGOutlineImplA.OutlineMovingParts = 26 (7.7%)
GGRefreshImpl.UpdateForegroundForMotion = 30 (8.9%)
GGMouseEventImplA.DuringDrag = 179 (53.1%)
GGWindowImpl.RestoreScreenAndInvariants = 145 (43.0%)
ViewerPaintImpl.PaintViewer = 151 (44.8%)
ImagerImpl.DoSaveAll = 149 (44.2%).
GGShapesImpl.DoDrawLine (2 refs) = 0, 36 (10.7%)
BufferedRefreshImpl.ChunkingToScreenAux (2 refs) = 0, 19 (5.6%)
BufferedRefreshImpl.UpdateBackingMap (2 refs) = 0, 18 (5.3%)
ImagerRasterImpl.MaskFillViaBoxes (2 refs) = 0, 78 (23.1%)
In summary, a gain of 5% might be had by making OutlineMovingParts faster. By drawing only part of the trajectory we are adding to, we might get 15-20%. I still don't understand why StartAdd was so fast (413, 307 vs 479, 384 now) in Cedar6.1. Maybe Jules Draw2d made the difference.
1) Obsolete (use benchmark 3 -- Bier, March 10, 1987 1:08:15 pm PST) Play AddBench.script. Load windowhacker.gargoyle. Add a line from the lower left corner of the window to the upper right corner.
June 24, 1986 Bier, BunkerHill
StartAdd.     started: 2. total: 3034. avg: 1517. min: 1386. max: 1647, index: 1
StoreBackground. started: 2. total: 1879. avg: 939. min: 812. max: 1067, index: 1
SetBags.    started: 2. total: 805. avg: 402. min: 399. max: 406, index: 1
AddPaint.   started: 4. total: 276. avg: 69. min: 59. max: 79, index: 4
June 24, 1986, Bier, BunkerHill. Put Caret on its own plane.StartAdd.
StartAdd.     started: 2. total: 1159. avg: 579. min: 565. max: 594, index: 2
StoreBackground. started: 2. total: 38. avg: 19. min: 17. max: 20, index: 1
SetBags.    started: 2. total: 764. avg: 382. min: 380. max: 384, index: 1
AddPaint.   started: 4. total: 292. avg: 73. min: 64. max: 82, index: 4
July 2, 1986, Bier, Langley. Building the gravity bags incrementally. Fixed a refresh bug that caused the Background to be made from scratch.
StartAdd.     started: 2. total: 687. avg: 343. min: 293. max: 393, index: 2
SetBags.     started: 2. total: 256. avg: 128. min: 126. max: 130, index: 1
AddPaint.    started: 6. total: 472. avg: 78. min: 70. max: 94, index: 4
EndAdd. started: 2. total: 5615. avg: 2807.
October 1, 1986, Bier, Independence. Routine performance check:
StartAdd. starts: 1. total: 341. avg: 341.
SetBagsForAction. starts: 1. total: 243. avg: 243.
UpdateBagsForAction. starts: 1. total: 104. avg: 104.
EndAdd. starts: 1. total: 505. avg: 505 (a bit high).
EndAdd. started: 2. total: 12236. avg: 6118, Date?, Bier, ?
Made MergeBackgroundAndOverlay redraw only the objects which are in front of the new one, i.e. none:
EndAdd. started: 2. total: 613. avg: 306. Date? (probably July 1986), Bier, ?
November 24, 1986, Bier, Independence. Object-oriented outlines.
StartAdd. starts: 1. total: 362. avg: 362. min: 362. max: 362, index: 1
SetBagsForAction. starts: 1. total: 204. avg: 204. min: 204. max: 204, index: 1
UpdateBagsForAction. starts: 1. total: 94. avg: 94. min: 94. max: 94, index: 1
EndAdd. starts: 1. total: 472. avg: 472. (a bit high)
Cedar7.0. March 3, 1987, Bier, QueenFish
StartAdd. starts: 1. total: 428. avg: 428. min: 428. max: 428, index: 1,
SetBagsForAction. starts: 1. total: 611. avg: 611. min: 611. max: 611, index: 1
UpdateBagsForAction. starts: 1. total: 58. avg: 58. min: 58. max: 58, index: 1
EndAdd. starts: 1. total: 1085. avg: 1085. min: 1085. max: 1085, index: 1
Another Try:
StartAdd. starts: 1. total: 428. avg: 428. min: 428. max: 428, index: 1 (quite high)
SetBagsForAction. starts: 1. total: 257. avg: 257. min: 257. max: 257, index: 1
UpdateBagsForAction. starts: 1. total: 58. avg: 58. min: 58. max: 58, index: 1
EndAdd. starts: 1. total: 615. avg: 615. min: 615. max: 615, index: 1 (quite high)
2) Playback BigG.script.
July 8, 1986, Bier, Langley
StartAdd. starts: 13. total: 10609. avg: 816. min: 277. max: 2016
EndAdd. starts: 1. total: 202. avg: 202. min: 202. max: 202
August 2, 1986, Bier, Independence, (dunno why this is so fast, maybe Independence helps)
StartAdd. starts: 13. total: 7452. avg: 573. min: 277. max: 890, index: 8
EndAdd. starts: 1. total: 530. avg: 530. min: 530. max: 530
August 2, 1986, Bier, Independence, (painting Alignment lines black instead of gray)
StartAdd. starts: 13. total: 7232. avg: 556. min: 284. max: 871, index: 9
EndAdd. starts: 1. total: 366. avg: 366. min: 366. max: 366, index: 1
October 1, 1986, Bier, Independence (a bit high)
StartAdd. starts: 13. total: 9766. avg: 751. min: 308. max: 1951, index: 9
EndAdd. starts: 1. total: 277. avg: 277. min: 277. max: 277, index: 1
November 24, 1986, Bier, Independence (still high)
StartAdd. starts: 13. total: 9241. avg: 710. min: 186. max: 1418, index: 12
EndAdd. starts: 1. total: 259. avg: 259. min: 259. max: 259, index: 1
December 30, 1986, Bier, QueenFish (even worse)
StartAdd. starts: 13. total: 10793. avg: 830. min: 201. max: 1501, index: 13
EndAdd. starts: 1. total: 333. avg: 333. min: 333. max: 333, index: 1
January 5, 1987, Bier, QueenFish
StartAdd. starts: 13. total: 8965. avg: 689. min: 203. max: 1309, index: 8
EndAdd. starts: 1. total: 289. avg: 289. min: 289. max: 289, index: 1
Any improvement is probably due to not precomputing intersections.
January 14, 1987, Bier, QueenFish
StartAdd. starts: 13. total: 9097. avg: 699. min: 240. max: 1209, index: 11
EndAdd. starts: 1. total: 328. avg: 328. min: 328. max: 328, index: 1
Using Draw2d.Line[dotted]. But using it non-zero stroke widths.
January 14, 1987, Bier, QueenFish
StartAdd. starts: 13. total: 5369. avg: 413. min: 179. max: 965, index: 8
EndAdd. starts: 1. total: 307. avg: 307. min: 307. max: 307, index: 1, Using Draw2d.Line[solid] with zero stroke widths.
Cedar 7.0. March 3, 1987, Bier, QueenFish. Perhaps the line-drawing is slower because we're not using Draw2d anymore.
StartAdd. starts: 13. total: 8036. avg: 618. min: 203. max: 1144, index: 10
EndAdd. starts: 1. total: 314. avg: 314. min: 314. max: 314, index: 1
March 10, 1987, Bier, QueenFish. After major renovations to bag updating.
StartAdd. starts: 13. total: 9815. avg: 755. min: 230. max: 1589, index: 12
EndMotion. starts: 4. total: 1465. avg: 366. min: 324. max: 385, index: 4
March 17, 1987, Bier, QueenFish.
StartAdd. starts: 13. total: 10390. avg: 799. min: 457. max: 1472, index: 13
EndMotion. starts: 4. total: 1679. avg: 419. min: 333. max: 514, index: 3
March 24, 1987, Bier, QueenFish. After using FunctionCache to suppress superfluous line drawing. A 37% improvement in performance. Yeah!
StartAdd. starts: 13. total: 6499. avg: 499. min: 298. max: 1183, index: 10
EndMotion. starts: 4. total: 1893. avg: 473. min: 328. max: 789, index: 4
StartAdd. starts: 13. total: 6234. avg: 479. min: 236. max: 1204, index: 9
EndMotion. starts: 4. total: 1538. avg: 384. min: 328. max: 433, index: 4
Total BigG Time: 21 seconds.
January 13, 1988, Pier, Independence. Objectified trajectories and cached bound boxes
StartAdd. starts: 13. total: 5617. avg: 432. min: 209. max: 1194, index: 7
EndMotion. starts: 4. total: 2165. avg: 541. min: 308. max: 1124, index: 4,
August 2, 1988, Pier, Independence. Undo installed with captures and history tool
StartAdd. starts: 13. total: 7491. avg: 576. min: 341. max: 836, index: 13, overflows: 0
EndMotion. starts: 4. total: 3389. avg: 847. min: 491. max: 1897, index: 3
StartAdd. starts: 13. total: 6984. avg: 537. min: 237. max: 699, index: 13, overflows: 0
EndMotion. starts: 4. total: 1904. avg: 476. min: 452. max: 493, index: 3, overflows: 0
November 1, 1989, Bier, QueenFish
StartAdd. starts: 13. total: 5822. avg: 447. min: 263. max: 611, index: 13, overflows: 0
EndMotion. starts: 4. total: 3085. avg: 771. min: 682. max: 829, index: 1, overflows: 0
StartAdd. starts: 13. total: 5725. avg: 440. min: 229. max: 601, index: 13, overflows: 0
EndMotion. starts: 4. total: 1180. avg: 295. min: 236. max: 401, index: 1, overflows: 0
April 18, 1990, Bier, Pippin
StartAdd. n: 13. total: 6172. avg: 474. range: [370..561], worst: 11
EndMotion. n: 4. total: 1819. avg: 454. range: [380..547], worst: 1
July 24, 1990, Bier, Lightspeed
StartAdd. n: 13. total: 2998. avg: 230. range: [183..269], worst: 12
EndMotion. n: 4. total: 942. avg: 235. range: [207..281], worst: 1
3) Playback AddTest1.script
July 8, 1986, Bier, Langley
StartAdd. starts: 5. total: 2768. avg: 553. min: 486. max: 675, index: 1
EndAdd. starts: 3. total: 1473. avg: 491. min: 481. max: 504, index: 2
October 1, 1986, Bier, Independence
StartAdd. starts: 5. total: 2828. avg: 565. min: 388. max: 1005, index: 5
EndAdd. starts: 3. total: 1528. avg: 509. min: 438. max: 569, index: 2
November 24, 1986, Bier, Independence
StartAdd. starts: 5. total: 2349. avg: 469. min: 265. max: 921, index: 4
EndAdd. starts: 3. total: 1438. avg: 479. min: 429. max: 505, index: 2
January 5, 1987, Bier, Queenfish
StartAdd. starts: 5. total: 2307. avg: 461. min: 278. max: 967, index: 5
EndAdd. starts: 3. total: 1848. avg: 616. min: 517. max: 809, index: 1
March 3, 1987 7:11:28 pm PST, Bier, Queenfish
StartAdd. starts: 5. total: 2438. avg: 487. min: 318. max: 956, index: 4
EndAdd. starts: 3. total: 2539. avg: 846. min: 690. max: 1109, index: 1
March 10, 1987 1:12:47 pm PST, Bier, Queenfish
StartAdd. starts: 5. total: 9071. avg: 1814. min: 1608. max: 1963, index: 3
EndMotion. starts: 3. total: 4701. avg: 1567. min: 1165. max: 2103, index: 3
StartAdd. starts: 5. total: 9138. avg: 1827. min: 1609. max: 2017, index: 5
EndMotion. starts: 3. total: 4659. avg: 1553. min: 1153. max: 2025, index: 3
March 10, 1987 3:00:24 pm PST, Bier, Queenfish. After reducing the SplitBackgroundAndOverlay calls for continue add.
StartAdd. starts: 5. total: 5884. avg: 1176. min: 380. max: 2005, index: 3
EndMotion. starts: 3. total: 5001. avg: 1667. min: 1191. max: 2336, index: 3
March 10, 1987 3:17:28 pm PST, Bier, Queenfish. After elimating SplitBackgroundAndOverlay calls for StartAdd.
StartAdd. starts: 5. total: 1975. avg: 395. min: 332. max: 440, index: 3
EndMotion. starts: 3. total: 5074. avg: 1691. min: 1223. max: 2332, index: 3
March 10, 1987 7:59:07 pm PST, Bier, Queenfish. After reducing the amount of repaint to only those objects above the ones that moved.
StartAdd. starts: 5. total: 2761. avg: 552. min: 303. max: 1083, index: 3
EndMotion. starts: 3. total: 749. avg: 249. min: 190. max: 283, index: 1
March 17, 1987, Bier, Independence. After changing UpdateBoundBox to re-use boxes.
StartAdd. starts: 5. total: 3091. avg: 618. min: 367. max: 1046, index: 4
EndMotion. starts: 3. total: 718. avg: 239. min: 182. max: 322, index: 3
StartAdd. starts: 5. total: 2710. avg: 542. min: 345. max: 1034, index: 5
EndMotion. starts: 3. total: 842. avg: 280. min: 182. max: 331, index: 1
March 25, 1987, Bier, Queenfish.
StartAdd. starts: 5. total: 2471. avg: 494. min: 412. max: 736, index: 1
EndMotion. starts: 3. total: 707. avg: 235. min: 190. max: 272, index: 3
January 13, 1988, Pier, Independence. Objectified trajectories and cached bound boxes
StartAdd. starts: 5. total: 2439. avg: 487. min: 254. max: 1199, index: 5
EndMotion. starts: 3. total: 498. avg: 166. min: 137. max: 198, index: 3
August 2, 1988, Pier, Independence. Undo install with capture and history tool
StartAdd. starts: 5. total: 1597. avg: 319. min: 217. max: 357, index: 5, overflows: 0
EndMotion. starts: 3. total: 8598. avg: 2866. min: 2820. max: 2929, index: 3, overflows: 0
November 1, 1989, Bier, Queenfish (With Turbo on)
StartAdd. starts: 5. total: 1841. avg: 368. min: 275. max: 447, index: 3, overflows: 0
EndMotion. starts: 3. total: 1417. avg: 472. min: 306. max: 742, index: 3, overflows: 0
StartAdd. starts: 5. total: 1912. avg: 382. min: 268. max: 448, index: 3, overflows: 0
EndMotion. starts: 3. total: 663. avg: 221. min: 181. max: 242, index: 1, overflows: 0
April 18, 1990, Bier, Pippin. Script a little broken.
StartAdd. n: 5. total: 2179. avg: 435. range: [362..501], worst: 1
EndMotion. n: 3. total: 1150. avg: 383. range: [338..409], worst: 1
July 24, 1990, Bier, Lightspeed (color). Script fixed.
StartAdd. n: 5. total: 1429. avg: 285. range: [246..384], worst: 1
EndMotion. n: 3. total: 701. avg: 233. range: [209..247], worst: 1
4) Reset Stats. Playback AddTest2.script.
October 1, 1986, Bier, Independence
Much of the StartAdd time is for drawing alignment lines.
StartAdd. starts: 21. total: 15461. avg: 736. min: 240. max: 2017, index: 21
EndAdd. starts: 9. total: 3224. avg: 358. min: 140. max: 630, index: 4
November 24, 1986, Bier, Independence
StartAdd. starts: 21. total: 16386. avg: 780. min: 234. max: 1980, index: 21
EndAdd. starts: 9. total: 3269. avg: 363. min: 162. max: 538, index: 4
January 5, 1987, Bier, QueenFish
StartAdd. starts: 21. total: 15673. avg: 746. min: 244. max: 1773, index: 20
EndAdd. starts: 9. total: 3812. avg: 423. min: 189. max: 867, index: 5
March 11, 1987, Bier, QueenFish
StartAdd. starts: 21. total: 15356. avg: 731. min: 255. max: 1563, index: 21
EndMotion. starts: 11. total: 3724. avg: 338. min: 174. max: 563, index: 9
January 13, 1988, Pier, Independence. Objectified trajectories and cached bound boxes
StartAdd. starts: 19. total: 7717. avg: 406. min: 182. max: 1402, index: 4
EndMotion. starts: 10. total: 2208. avg: 220. min: 136. max: 297, index: 10
August 2, 1988, Pier, Independence. undo and history tool
StartAdd. starts: 21. total: 9120. avg: 434. min: 255. max: 745, index: 21, overflows: 0
EndMotion. starts: 11. total: 3970. avg: 360. min: 262. max: 561, index: 11, overflows: 0
November 1, 1989, Bier, QueenFish
StartAdd. starts: 21. total: 9026. avg: 429. min: 238. max: 761, index: 21, overflows: 0
EndMotion. starts: 11. total: 4087. avg: 371. min: 247. max: 757, index: 11, overflows: 0
StartAdd. starts: 21. total: 9202. avg: 438. min: 240. max: 755, index: 21, overflows: 0
EndMotion. starts: 11. total: 2610. avg: 237. min: 180. max: 325, index: 10, overflows: 0
April 18, 1990, Bier, Pippin
StartAdd. n: 21. total: 10494. avg: 499. range: [379..698], worst: 2
EndMotion. n: 11. total: 3990. avg: 362. range: [282..484], worst: 1
July 24, 1990, Bier, Lightspeed (color)
StartAdd. n: 5. total: 1429. avg: 285. range: [246..384], worst: 1
EndMotion. n: 3. total: 701. avg: 233. range: [209..247], worst: 1
5) Lost script file. Playback AddTestNoHeuristics.script. Tests adding with lots of alignment lines around but heuristics off.
StartAdd. starts: 7. total: 22063. avg: 3151. min: 2948. max: 3355, index: 5
EndAdd. starts: 1. total: 3118. avg: 3118.
January 5, 1987, Bier, QueenFish
StartAdd. starts: 7. total: 2352. avg: 336. min: 199. max: 754, index: 6
EndAdd. starts: 1. total: 3526. avg: 3526.
StartAdd sped up by identifying more cases where redrawing the alignment lines isn't necessary.
Deleting Performance
1) Playback DeleteTest1.script. Record the Delete time. (Loads windowhacker and deletes almost everything).
July 6, 1987, Bier, QueenFish
Delete. starts: 1. total: 2940. avg: 2940.
Delete. starts: 1. total: 2532. avg: 2532.
Delete. starts: 1. total: 3456. avg: 3456
July 6, 1987, Bier, QueenFish. After fixing GGSelect.DuplicateSelections to do Outlines once instead of twice. 50% of the time goes into building the list in GGSelectImpl.SelectedSlices in GGSelectImpl.SelectedOutlineSequences in ForEachOutlineRun.
Delete. starts: 1. total: 2658. avg: 2658.
Delete. starts: 1. total: 2346. avg: 2346.
July 6, 1987, Bier, QueenFish. After implementing GGSelect.WalkSelectedSlices to reduce the time spent in GGSelectImpl.SelectedOutlineSequences. Now 39.7% is spent in GGSceneImpl.OutlinesFromOutlineExcept (this seems bogus). Another Spy run turns up 39.4% of the time in GGTrajImpl.RemakeSelection, mostly in GGSelectImpl.SelectSequence, mostly in GGSelectImpl.SelectSlice, mostly in GGSelectImpl.AppendSelection, mostly in AllocatorImpl.NewSystemObject (this is an Nconc!).
Delete. starts: 1. total: 2485. avg: 2485.
Delete. starts: 1. total: 2327. avg: 2327.
July 6, 1987, Bier, QueenFish. After replacing Nconc in GGSelectImpl.AppendSelection by a tail pointer scheme.
Delete. starts: 1. total: 2536. avg: 2536.
Delete. starts: 1. total: 2309. avg: 2309.
July 6, 1987, Bier, QueenFish. After replacing calls to SelectedOutlineSequences (building an entire generator) by calls to FirstSelectedOutlineSequences (finding just the first Outline needing work). At last, I got a factor of 2!
Delete. starts: 1. total: 1185. avg: 1185.
Delete. starts: 1. total: 1143. avg: 1143.
July 6, 1987, Bier, QueenFish. After combining loops in GGOutlineImplB.SaveSelectionsInOutline to reduce Rosary operations. Refresh and Delete times are now balanced.
Delete. starts: 1. total: 1110. avg: 1110.
Delete. starts: 1. total: 1071. avg: 1071.
January 13, 1988, Pier, Independence. Objectified trajectories and cached bound boxes
Delete. starts: 1. total: 2236. avg: 2236.
Delete. starts: 1. total: 2196. avg: 2196.
January 14, 1988, Pier, Independence. Objectified trajectories and smarter cached bound boxes
Delete. starts: 1. total: 1272. avg: 1272.
Delete. starts: 1. total: 1299. avg: 1299
January 15, 1988, Pier, Independence. Redundant calls to BoundBoxOfSelected removed
Delete. starts: 1. total: 1143. avg: 1143.
Delete. starts: 1. total: 1170. avg: 1170
August 2, 1988, Pier, Independence. Undo installed, with capture of almost entire scene
Delete. starts: 1. total: 2016. avg: 2016.
Delete. starts: 1. total: 2080. avg: 2080
November 1, 1989, Bier, Queenfish
Delete. starts: 1. total: 1539. avg: 1539.
Delete. starts: 1. total: 1499. avg: 1499.
April 18, 1990, Bier, Pippin
Delete. n: 1. total: 4698. avg: 4698. range: [4698..4698], worst: 1
July 25, 1990, Bier, Pippin
Delete. n: 1. total: 1127. avg: 1127. range: [1127..1127], worst: 1
July 24, 1990, Bier, Lightspeed (color)
Delete. n: 1. total: 356. avg: 356. range: [356..356], worst: 1
Delete. n: 1. total: 362. avg: 362. range: [362..362], worst: 1
December 3, 1991, Bier, Duet (color, unoptimized)
Delete. n: 1. total: 435. avg: 435. range: [435..435], worst: 1
RestoreScreenAndInvariants. n: 1. total: 236. avg: 236. range: [236..236]
Delete. n: 1. total: 433. avg: 433. range: [433..433], worst: 1
RestoreScreenAndInvariants. n: 1. total: 242. avg: 242. range: [242..242]
Caret Positioning Performance
June 24, 1986 4:20:57 pm PDT, Bier, BunkerHill
1) Playback IntersectionTest1.script. Record the StartCaretPos line.
November 6, 1986, Bier, QueenFish
StartCaretPos. starts: 16. total: 2845. avg: 177. min: 162. max: 207
November 6, 1986, Bier, QueenFish (after giving Line segments permanent Edge storage). Much of the remaining time is for drawing the Control Point feedback plane.
StartCaretPos. starts: 16. total: 2730. avg: 170. min: 140. max: 302,
November 26, 1986, Bier, QueenFish (Object-oriented outlines).
StartCaretPos. starts: 16. total: 3040. avg: 190. min: 154. max: 242, index: 7
December 29, 1986, Bier, QueenFish. Less feedback during caret motion.
StartCaretPos. starts: 16. total: 1797. avg: 112. min: 95. max: 206, index: 7,
January 5, 1987, Bier, QueenFish.
StartCaretPos. starts: 16. total: 1975. avg: 123. min: 86. max: 223, index: 7
March 11, 1987, Bier, QueenFish (Cedar7.0)
StartCaretPos. starts: 16. total: 2028. avg: 126. min: 96. max: 217, index: 5
January 13, 1988, Pier, Independence. Objectified trajectories and cached bound boxes
StartCaretPos. starts: 16. total: 1692. avg: 105. min: 103. max: 131, index: 1
November 1, 1989, Bier, QueenFish.
StartCaretPos. starts: 16. total: 2312. avg: 144. min: 127. max: 156, index: 1
StartCaretPos. starts: 16. total: 2333. avg: 145. min: 127. max: 154, index: 1
April 18, 1990, Bier, Pippin
StartCaretPos. n: 16. total: 4944. avg: 309. range: [272..401], worst: 15
July 25, 1990, Bier, Pippin
StartCaretPos. n: 16. total: 5690. avg: 355. range: [271..488], worst: 14
July 24, 1990, Bier, Lightspeed (color)
StartCaretPos. n: 16. total: 3495. avg: 218. range: [215..222], worst: 7
StartCaretPos. n: 16. total: 3507. avg: 219. range: [214..223], worst: 1
October 31, 1990, Bier, Arpeggio (SS1+, SunOS4.1) With delta error messages.
StartCaretPos. n: 1. total: 609. avg: 609. range: [609..609], worst: 1
StartCaretPos. n: 15. total: 7740. avg: 516. range: [389..760], worst: 5
RestoreScreenAndInvariants. n: 15. total: 5510. avg: 367. range: [250..510], worst: 5
PaintViewer. n: 15. total: 5509. avg: 367. range: [250..509], worst: 5
DoWithBuffer. n: 15. total: 5179. avg: 345. range: [240..480], worst: 5
MaskLayer. n: 15. total: 559. avg: 37. range: [19..69], worst: 15
DrawNoMap. n: 45. total: 1219. avg: 27. range: [0..79], worst: 14
RefreshCaretPlane. n: 15. total: 479. avg: 31. range: [19..49], worst: 9
RefreshCPFeedback. n: 15. total: 399. avg: 26. range: [9..79], worst: 5
RefreshOverlay. n: 15. total: 90. avg: 6. range: [0..20], worst: 2
TransferLayer. n: 15. total: 1300. avg: 86. range: [50..139], worst: 8
MultiMap. n: 15. total: 449. avg: 29. range: [10..59], worst: 12
StartCaretPos. n: 15. total: 7859. avg: 523. range: [300..719], worst: 14
StartCaretPos. n: 1. total: 730. avg: 730. range: [730..730], worst: 1
2) Playback IntersectionTest2.script. Record the DuringCaretPos and EndCaretPos times.
January 7, 1987, Bier, Queenfish
DuringCaretPos. starts: 18. total: 2323. avg: 129. min: 86. max: 208, index: 6
EndCaretPos. starts: 9. total: 4492. avg: 499. min: 167. max: 1596, index: 2
March 11, 1987, Bier, QueenFish (Cedar7.0)
DuringCaretPos. starts: 41. total: 4949. avg: 120. min: 82. max: 212, index: 8
EndCaretPos. starts: 25. total: 5462. avg: 218. min: 151. max: 453, index: 5
January 13, 1988, Pier, Independence. Objectified trajectories and cached bound boxes
DuringCaretPos. starts: 41. total: 4335. avg: 105. min: 97. max: 125, index: 1
EndCaretPos. starts: 25. total: 4772. avg: 190. min: 150. max: 338, index: 17
November 1, 1989, Bier, Queenfish
DuringCaretPos. starts: 41. total: 5631. avg: 137. min: 121. max: 151, index: 24, overflows: 0
EndCaretPos. starts: 25. total: 5011. avg: 200. min: 174. max: 285, index: 18, overflows: 0
DuringCaretPos. starts: 59. total: 8088. avg: 137. min: 121. max: 151, index: 42, overflows: 0
EndCaretPos. starts: 34. total: 6873. avg: 202. min: 171. max: 285, index: 18, overflows: 0
April 18, 1990, Bier, Pippin
DuringCaretPos. n: 41. total: 13537. avg: 330. range: [269..418], worst: 12
EndCaretPos. n: 25. total: 8810. avg: 352. range: [297..480], worst: 23
July 25, 1990, Bier, Pippin
DuringCaretPos. n: 16. total: 2426. avg: 151. range: [82..281], worst: 14
EndCaretPos. n: 25. total: 10823. avg: 432. range: [305..595], worst: 23
July 25, 1990, Bier, Lightspeed (color)
DuringCaretPos. n: 16. total: 813. avg: 50. range: [36..103], worst: 13
EndCaretPos. n: 25. total: 5996. avg: 239. range: [228..272], worst: 17
3) Lost script. Load Halftones.gargoyle. Playback HalftonesCaretTest.script. Record the StartCaretPos and DuringCaretPos times.
StartCaretPos. starts: 1. total: 2003. avg: 2003. min: 2003. max: 2003
DuringCaretPos. starts: 2. total: 3893. avg: 1946. min: 1918. max: 1974, index: 1
StartCaretPos. starts: 1. total: 255. avg: 255. min: 255. max: 255
DuringCaretPos. starts: 2. total: 420. avg: 210. min: 167. max: 253
After substituting an O(n) algorithm for drawing the control point feedback and reducing the amount of feedback that is drawn. Oops. It was still O(n^2), but it allocates a lot less.
StartCaretPos. starts: 1. total: 169. avg: 169.
DuringCaretPos. starts: 2. total: 350. avg: 175. min: 167. max: 182, index: 2, January 5, 1987, Bier, QueenFish
StartCaretPos. starts: 1. total: 174. avg: 174
DuringCaretPos. starts: 2. total: 311. avg: 155. min: 153. max: 158, index: 2, January 7, 1987, Bier, QueenFish
StartCaretPos. starts: 1. total: 168. avg: 168
DuringCaretPos. starts: 2. total: 301. avg: 150. min: 150. max: 151, index: 2, January 7, 1987, Bier, QueenFish
After making the algorithm truly O(n). Not much effect because no selection feedback is attempted during caret motion. The time to record is the repainting time.
Selection Performance
1) Load Halftones.gargoyle. SelectAll. Find and record the time for SelectAll using the ShowSelectedStatistic item in the Debug menu.
November 11, 1986, Bier, QueenFish
SelectAll. starts: 1. total: 9144. avg: 9144.
December 17, 1986, Bier, QueenFish
SelectAll. starts: 1. total: 8961. avg: 8961.
December 29, 1986, Bier, QueenFish. After simplifying the Selection feedback so it doesn't paint anything twice.
SelectAll. starts: 1. total: 7805. avg: 7805.
January 7, 1987, Bier, QueenFish.
SelectAll. starts: 1. total: 5454. avg: 5454. After speeding up joint generators.
March 11, 1987, Bier, QueenFish. Cedar7.0
SelectAll. starts: 1. total: 6702. avg: 6702. min: 6702. max: 6702, index: 1 (somewhat high)
November 2, 1989, Bier, QueenFish.
SelectAll. starts: 1. total: 2243. avg: 2243. min: 2243. max: 2243, index: 1
SelectAll. starts: 1. total: 2036. avg: 2036. min: 2036. max: 2036, index: 1,
April 18, 1990, Bier, Pippin
SelectAll. n: 1. total: 1676. avg: 1676. range: [1676..1676], worst: 1
May 29, 1990, Bier, Pippin
SelectAll. n: 1. total: 1607. avg: 1607. range: [1607..1607], worst: 1
SelectAll. n: 1. total: 1707. avg: 1707. range: [1707..1707], worst: 1
2) (Obsolete. OctaFlowers.gargoyle lost). Action area full column. Playback OctaFlowers.script. Record the StartSelectWithBox and EndSelectWithBox times.
March 12, 1988, Bier, QueenFish
StartSelectWithBox. starts: 3. total: 547. avg: 182. min: 174. max: 186, index: 3
EndSelectWithBox. starts: 3. total: 20365. avg: 6788. min: 5483. max: 9316, index: 3
March 12, 1988, Bier, QueenFish. EndSelectWithBox no longer deletes the box and repaints.
StartSelectWithBox. starts: 3. total: 530. avg: 176. min: 176. max: 177, index: 2
EndSelectWithBox. starts: 3. total: 2936. avg: 978. min: 753. max: 1400, index: 1
StartSelectWithBox. starts: 3. total: 540. avg: 180. min: 174. max: 185, index: 2
EndSelectWithBox. starts: 3. total: 2624. avg: 874. min: 755. max: 948, index: 2
March 12, 1988, Bier, QueenFish. GetTightBox now caches the box.
StartSelectWithBox. starts: 3. total: 678. avg: 226. min: 179. max: 314, index: 1
EndSelectWithBox. starts: 3. total: 2019. avg: 673. min: 629. max: 751, index: 1
Setting Up Gravity Bags
1) Run BuiltInFilters.script. Record both times for BuiltInFilters. The first time is for adding 17 lines and computing 1378 (should be only 982) intersections. The second time is for adding 17 circles and computing 561 circle-circle intersections. Note: as of late 1987 all intersections are computed on the fly.
December 29, 1986, Bier, QueenFish
Lines, BuiltInFilters. starts: 1. total: 458. avg: 458.
Circles, BuiltInFilters. starts: 1. total: 361. avg: 361.
December 29, 1986, Bier, Queenfish. These times seem to be very sensitive to garbage collection.
Lines, BuiltInFilters. starts: 1. total: 1240. avg: 1240
Circles, BuiltInFilters. starts: 1. total: 403. avg: 403
Lines, BuiltInFilters. starts: 1. total: 1363. avg: 1363
Circles, BuiltInFilters. starts: 1. total: 388. avg: 388.
January 5, 1987, Bier, Queenfish
Lines, BuiltInFilters. starts: 1. total: 923. avg: 923.
Circles, BuiltInFilters. starts: 1. total: 979. avg: 979.
January 5, 1987, Bier, Queenfish. This suggests that garbage collection makes about a 500 msec difference.
Lines, BuiltInFilters. starts: 1. total: 164. avg: 164.
Circles, BuiltInFilters. starts: 1. total: 52. avg: 52.
Lines, BuiltInFilters. starts: 1. total: 633. avg: 633.
Circles, BuiltInFilters. starts: 1. total: 77. avg: 77.
March 11, 1987, Bier, Queenfish. Cedar7.0.
Lines. starts: 1. total: 161. avg: 161.
Circles. starts: 1. total: 146. avg: 146.
Lines. starts: 1. total: 290. avg: 290
Circles. starts: 1. total: 119. avg: 119 (a bit high)
January 14, 1988. Pier. Independence. Objectified trajectories and cached bound boxes
Lines. BuiltInFilters. starts: 1. total: 136. avg: 136. min: 136. max: 136, index: 1
Circles. BuiltInFilters. starts: 1. total: 73. avg: 73. min: 73. max: 73, index: 1
November 2, 1989, Bier, QueenFish. Adding lines no longer calls BuiltInFilters, so we only get Circle statistics:
Circles. BuiltInFilters. starts: 1. total: 52. avg: 52. min: 52. max: 52, index: 1
April 18, 1990, Bier, Pippin
Lines, BuiltInFilters. n: 0. total: 0. avg: 0. range: [0..0], worst: 0
Circles, BuiltInFilters. n: 1. total: 17. avg: 17. range: [17..17], worst: 1
2) Obsolete, since midpoints are no longer precomputed. [Play ComputeMidpoints.script. Loads HackerHouse and turns on midpoints.]
April 8, 1987, Bier, QueenFish
AddAllMidpoints. starts: 1. total: 1168.
AddAllMidpoints. starts: 1. total: 1064.
Total script: 29 seconds.
April 8, 1987, Bier, QueenFish. Midpoints are no longer precomputed.
AddAllMidpoints. starts: 1. total: 0.
3) Not yet made, Bier, May 6, 1988. Play DragTest.script. (Loads hacker house, selects an object, begins to drag.) Record StartDrag, DuringDrag, EndMotion, StaticToDynamicBags, and DynamicToStaticBags times.
4) Play BagsTest.script. Record all statistics. Test bags with lots of slope lines.
March 20, 1988, Bier, QueenFish
MakeAllHot. starts: 1. total: 6363. avg: 6363.
MakeAllCold. starts: 1. total: 272. avg: 272.
MakeAllHot. starts: 1. total: 947. avg: 947.
ToggleSlope. starts: 1. total: 1886. avg: 1886.
ToggleSlope. starts: 1. total: 3154. avg: 3154.
StartAdd. starts: 8. total: 18312. avg: 2289. min: 1888. max: 3340, index: 4
ContinueAdd. starts: 7. total: 10678. avg: 1525. min: 1471. max: 1568, index: 2
EndMotion. starts: 1. total: 3350. avg: 3350.
StartDrag. starts: 1. total: 1745. avg: 1745.
DuringDrag. starts: 1. total: 1527. avg: 1527.
EndMotion. starts: 1. total: 3270. avg: 3270.
StartDrag. starts: 1. total: 1635. avg: 1635.
DuringDrag. starts: 2. total: 1682. avg: 841. min: 162. max: 1520, index: 1
EndMotion. starts: 1. total: 3272. avg: 3272.
StartAdd. starts: 8. total: 1914. avg: 239. min: 185. max: 302, index: 5
ContinueAdd. starts: 7. total: 165. avg: 23. min: 20. max: 35, index: 3
EndMotion. starts: 1. total: 482. avg: 482.
StartDrag. starts: 1. total: 61. avg: 61.
DuringDrag. starts: 1. total: 176. avg: 176.
EndMotion. starts: 1. total: 458. avg: 458.
StartDrag. starts: 1. total: 35. avg: 35.
DuringDrag. starts: 2. total: 338. avg: 169. min: 161. max: 176, index: 1
EndMotion. starts: 1. total: 443. avg: 443.
MakeCold. starts: 1. total: 3091. avg: 3091.
MakeHot. starts: 1. total: 2469. avg: 2469.
March 20, 1988, Bier, QueenFish. Using hashing to speed line comparisons. (and walkprocs)
MakeAllHot. starts: 1. total: 2381. avg: 2381.
MakeAllCold. starts: 1. total: 245. avg: 245.
MakeAllHot. starts: 1. total: 685. avg: 685.
ToggleSlope. starts: 1. total: 1414. avg: 1414.
ToggleSlope. starts: 1. total: 2254. avg: 2254.
StartAdd. starts: 8. total: 8313. avg: 1039. min: 814. max: 2110, index: 1
ContinueAdd. starts: 7. total: 4316. avg: 616. min: 588. max: 665, index: 7
EndMotion. starts: 1. total: 2468. avg: 2468.
StartDrag. starts: 1. total: 669. avg: 669.
DuringDrag. starts: 1. total: 1520. avg: 1520.
EndMotion. starts: 1. total: 2381. avg: 2381.
StartDrag. starts: 1. total: 612. avg: 612.
DuringDrag. starts: 2. total: 1694. avg: 847. min: 176. max: 1517, index: 1
EndMotion. starts: 1. total: 2339. avg: 2339.
StartAdd. starts: 8. total: 1875. avg: 234. min: 188. max: 289, index: 8
ContinueAdd. starts: 7. total: 181. avg: 25. min: 19. max: 44, index: 3
EndMotion. starts: 1. total: 454. avg: 454.
StartDrag. starts: 1. total: 64. avg: 64.
DuringDrag. starts: 2. total: 343. avg: 171. min: 165. max: 178, index: 1
EndMotion. starts: 1. total: 451. avg: 451.
StartDrag. starts: 1. total: 34. avg: 34.
DuringDrag. starts: 2. total: 354. avg: 177. min: 176. max: 178, index: 1
EndMotion. starts: 1. total: 429. avg: 429.
MakeCold. starts: 1. total: 2257. avg: 2257.
MakeHot. starts: 1. total: 928. avg: 928.
March 21, 1988, Bier, QueenFish. More carefully detecting cases where no auto triggers are added. These improvements shown underlined. More carefully detecting cases where no hot objects are moving. These improvements shown in italics.
MakeAllHot. starts: 1. total: 2214. avg: 2214.
MakeAllCold. starts: 1. total: 258. avg: 258.
MakeAllHot. starts: 1. total: 678. avg: 678.
ToggleSlope. starts: 1. total: 1265. avg: 1265.
ToggleSlope. starts: 1. total: 1998. avg: 1998.
StartAdd. starts: 8. total: 8576. avg: 1072. min: 887. max: 1970, index: 1
ContinueAdd. starts: 7. total: 186. avg: 26. min: 20. max: 40, index: 2
EndMotion. starts: 1. total: 3718. avg: 3718.
StartDrag. starts: 1. total: 598. avg: 598.
DuringDrag. starts: 1. total: 1407. avg: 1407.
EndMotion. starts: 1. total: 1615. avg: 1615.
StartDrag. starts: 1. total: 27. avg: 27.
DuringDrag. starts: 2. total: 1579. avg: 789. min: 215. max: 1364, index: 1
EndMotion. starts: 1. total: 445. avg: 445.
StartAdd. starts: 8. total: 2096. avg: 262. min: 220. max: 287, index: 7
ContinueAdd. starts: 7. total: 179. avg: 25. min: 20. max: 38, index: 1
EndMotion. starts: 1. total: 462. avg: 462.
StartDrag. starts: 1. total: 53. avg: 53.
DuringDrag. starts: 2. total: 422. avg: 211. min: 205. max: 217, index: 1
EndMotion. starts: 1. total: 456. avg: 456.
StartDrag. starts: 1. total: 27. avg: 27.
DuringDrag. starts: 2. total: 432. avg: 216. min: 215. max: 217, index: 2
EndMotion. starts: 1. total: 439. avg: 439.
MakeCold. starts: 1. total: 2007. avg: 2007.
MakeHot. starts: 1. total: 868. avg: 868.
March 21, 1988, Bier, QueenFish. Augmenting the foreground plane for StartMotion, even if Auto is on.
MakeAllHot. starts: 1. total: 2160. avg: 2160.
MakeAllCold. starts: 1. total: 257. avg: 257.
MakeAllHot. starts: 1. total: 679. avg: 679.
ToggleSlope. starts: 1. total: 1266. avg: 1266.
ToggleSlope. starts: 1. total: 2012. avg: 2012.
StartAdd. starts: 8. total: 9123. avg: 1140. min: 841. max: 1970, index: 1
ContinueAdd. starts: 7. total: 4045. avg: 577. min: 536. max: 605, index: 2
EndMotion. starts: 1. total: 2118. avg: 2118.
StartDrag. starts: 1. total: 585. avg: 585.
DuringDrag. starts: 1. total: 1406. avg: 1406.
EndMotion. starts: 1. total: 2105. avg: 2105.
StartDrag. starts: 1. total: 24. avg: 24.
DuringDrag. starts: 2. total: 439. avg: 219. min: 215. max: 223, index: 1
EndMotion. starts: 1. total: 445. avg: 445.
StartAdd. starts: 8. total: 2107. avg: 263. min: 217. max: 286, index: 8
ContinueAdd. starts: 7. total: 159. avg: 22. min: 20. max: 30, index: 6
EndMotion. starts: 1. total: 463. avg: 463.
StartDrag. starts: 1. total: 49. avg: 49.
DuringDrag. starts: 2. total: 421. avg: 210. min: 203. max: 218, index: 1
EndMotion. starts: 1. total: 458. avg: 458.
StartDrag. starts: 1. total: 24. avg: 24.
DuringDrag. starts: 2. total: 433. avg: 216. min: 215. max: 217, index: 2
EndMotion. starts: 1. total: 437. avg: 437.
MakeCold. starts: 1. total: 2005. avg: 2005.
MakeHot. starts: 1. total: 865. avg: 865.
March 22, 1988, Bier, QueenFish. Using FilterLists to reduce time to compute Cartesian product.
MakeAllHot. starts: 1. total: 1890. avg: 1890.
MakeAllCold. starts: 1. total: 264. avg: 264.
MakeAllHot. starts: 1. total: 365. avg: 365.
ToggleSlope. starts: 1. total: 938. avg: 938.
ToggleSlope. starts: 1. total: 1684. avg: 1684.
StartAdd. starts: 8. total: 6302. avg: 787. min: 692. max: 874, index: 7
ContinueAdd. starts: 7. total: 172. avg: 24. min: 20. max: 39, index: 7
EndMotion. starts: 1. total: 1662. avg: 1662.
StartDrag. starts: 1. total: 487. avg: 487.
DuringDrag. starts: 1. total: 266. avg: 266.
EndMotion. starts: 1. total: 1427. avg: 1427.
StartDrag. starts: 1. total: 24. avg: 24.
DuringDrag. starts: 2. total: 437. avg: 218. min: 214. max: 222, index: 1
EndMotion. starts: 1. total: 256. avg: 256.
StartAdd. starts: 8. total: 2078. avg: 259. min: 220. max: 286, index: 7
ContinueAdd. starts: 7. total: 177. avg: 25. min: 20. max: 37, index: 1
EndMotion. starts: 1. total: 274. avg: 274.
StartDrag. starts: 1. total: 50. avg: 50.
DuringDrag. starts: 2. total: 420. avg: 210. min: 203. max: 217, index: 1
EndMotion. starts: 1. total: 271. avg: 271.
StartDrag. starts: 1. total: 24. avg: 24.
DuringDrag. starts: 2. total: 431. avg: 215. min: 215. max: 215, index: 2
EndMotion. starts: 1. total: 249. avg: 249.
MakeCold. starts: 1. total: 1681. avg: 1681.
MakeHot. starts: 1. total: 546. avg: 546.
March 22, 1988, Bier, QueenFish. Incremental adding of auto alignments.
MakeAllHot. starts: 1. total: 1859. avg: 1859.
MakeAllCold. starts: 1. total: 241. avg: 241.
MakeAllHot. starts: 1. total: 285. avg: 285.
ToggleSlope. starts: 1. total: 942. avg: 942.
ToggleSlope. starts: 1. total: 1662. avg: 1662.
StartAdd. starts: 8. total: 3383. avg: 422. min: 308. max: 656, index: 7
ContinueAdd. starts: 7. total: 149. avg: 21. min: 20. max: 21, index: 1
EndMotion. starts: 1. total: 1452. avg: 1452.
StartDrag. starts: 1. total: 137. avg: 137.
DuringDrag. starts: 1. total: 500. avg: 500.
EndMotion. starts: 1. total: 1422. avg: 1422.
StartDrag. starts: 1. total: 24. avg: 24.
DuringDrag. starts: 2. total: 438. avg: 219. min: 215. max: 222, index: 1
EndMotion. starts: 1. total: 255. avg: 255.
StartAdd. starts: 8. total: 2068. avg: 258. min: 216. max: 289, index: 7
ContinueAdd. starts: 7. total: 167. avg: 23. min: 20. max: 38, index: 7
EndMotion. starts: 1. total: 274. avg: 274.
StartDrag. starts: 1. total: 53. avg: 53.
DuringDrag. starts: 2. total: 425. avg: 212. min: 208. max: 216, index: 1
EndMotion. starts: 1. total: 277. avg: 277.
StartDrag. starts: 1. total: 27. avg: 27.
DuringDrag. starts: 2. total: 428. avg: 214. min: 214. max: 214, index: 2
EndMotion. starts: 1. total: 247. avg: 247.
MakeCold. starts: 1. total: 1671. avg: 1671.
MakeHot. starts: 1. total: 522. avg: 522.
ToggleSlope. starts: 1. total: 1011. avg: 1011.
ToggleSlope. starts: 1. total: 212. avg: 212.
March 23, 1988, Bier, QueenFish. Faster Starbursts. (The non-bold numbers show the results for if startbursts were still slow.)
MakeAllHot. starts: 1. total: 1813. avg: 1797.
MakeAllCold. starts: 1. total: 241. avg: 243.
MakeAllHot. starts: 1. total: 283. avg: 284.
ToggleSlope. starts: 1. total: 938. avg: 936.
ToggleSlope. starts: 1. total: 1654. avg: 1637.
StartAdd. starts: 8. total: 3395. avg: 320. min: 256. max: 422, index: 8
ContinueAdd. starts: 7. total: 151. avg: 27. min: 20. max: 22, index: 7
EndMotion. starts: 1. total: 1454. avg: 1431.
StartDrag. starts: 1. total: 135. avg: 139.
DuringDrag. starts: 1. total: 491. avg: 210.
EndMotion. starts: 1. total: 1411. avg: 1419.
StartDrag. starts: 1. total: 24. avg: 23.
DuringDrag. starts: 2. total: 439. avg: 188. min: 215. max: 223, index: 1
EndMotion. starts: 1. total: 256. avg: 256.
StartAdd. starts: 8. total: 2085. avg: 234. min: 217. max: 289, index: 7
ContinueAdd. starts: 7. total: 171. avg: 21. min: 19. max: 44, index: 3
EndMotion. starts: 1. total: 275. avg: 275.
StartDrag. starts: 1. total: 53. avg: 56.
DuringDrag. starts: 2. total: 430. avg: 183. min: 210. max: 219, index: 1
EndMotion. starts: 1. total: 275. avg: 277.
StartDrag. starts: 1. total: 24. avg: 24.
DuringDrag. starts: 2. total: 432. avg: 367. min: 215. max: 217, index: 2
EndMotion. starts: 1. total: 249. avg: 248.
MakeCold. starts: 1. total: 1666. avg: 1685.
MakeHot. starts: 1. total: 533. avg: 540.
ToggleSlope. starts: 1. total: 1003. avg: 1008.
ToggleSlope. starts: 1. total: 209. avg: 220.
March 29, 1988, Bier, QueenFish. Hash tables for trigger bag and scene bag.
MakeAllHot. starts: 1. total: 1806. avg: 1806.
MakeAllCold. starts: 1. total: 264. avg: 264.
MakeAllHot. starts: 1. total: 294. avg: 294.
ToggleSlope. starts: 1. total: 933. avg: 933.
ToggleSlope. starts: 1. total: 1628. avg: 1628.
StartAdd. starts: 8. total: 4790. avg: 598. min: 316. max: 1363, index: 6
ContinueAdd. starts: 7. total: 218. avg: 31. min: 22. max: 53, index: 7
EndMotion. starts: 1. total: 1820. avg: 1820.
StartDrag. starts: 1. total: 142. avg: 142.
DuringDrag. starts: 1. total: 507. avg: 507.
EndMotion. starts: 1. total: 1407. avg: 1407.
StartDrag. starts: 1. total: 29. avg: 29.
DuringDrag. starts: 2. total: 452. avg: 226. min: 222. max: 229, index: 1
EndMotion. starts: 1. total: 256. avg: 256.
StartAdd. starts: 8. total: 2169. avg: 271. min: 226. max: 300, index: 7
ContinueAdd. starts: 7. total: 171. avg: 24. min: 21. max: 37, index: 2
EndMotion. starts: 1. total: 274. avg: 274.
StartDrag. starts: 1. total: 54. avg: 54.
DuringDrag. starts: 2. total: 444. avg: 222. min: 215. max: 228, index: 1
EndMotion. starts: 1. total: 275. avg: 275.
StartDrag. starts: 1. total: 29. avg: 29.
DuringDrag. starts: 2. total: 443. avg: 221. min: 221. max: 221, index: 1
EndMotion. starts: 1. total: 249. avg: 249.
MakeCold. starts: 1. total: 1675. avg: 1675.
MakeHot. starts: 1. total: 534. avg: 534.
ToggleSlope. starts: 1. total: 1002. avg: 1002.
ToggleSlope. starts: 1. total: 213. avg: 213.
April 11, 1988, Bier, QueenFish. Zip is now actually used for lines. Foreground bitmap save and restore.
MakeAllHot. starts: 1. total: 1397. avg: 1397.
MakeAllCold. starts: 1. total: 274. avg: 274.
MakeAllHot. starts: 1. total: 240. avg: 240.
ToggleSlope. starts: 1. total: 773. avg: 773.
ToggleSlope. starts: 1. total: 1323. avg: 1323.
StartAdd. starts: 8. total: 3956. avg: 494. min: 422. max: 605, index: 8
ContinueAdd. starts: 7. total: 184. avg: 26. min: 21. max: 36, index: 3
EndMotion. starts: 1. total: 294. avg: 294.
StartDrag. starts: 1. total: 182. avg: 182.
DuringDrag. starts: 1. total: 242. avg: 242.
EndMotion. starts: 1. total: 286. avg: 286.
StartDrag. starts: 1. total: 28. avg: 28.
DuringDrag. starts: 2. total: 387. avg: 193. min: 191. max: 196, index: 1
EndMotion. starts: 1. total: 258. avg: 258.
StartAdd. starts: 8. total: 2363. avg: 295. min: 195. max: 354, index: 5
ContinueAdd. starts: 7. total: 173. avg: 24. min: 21. max: 37, index: 2
EndMotion. starts: 1. total: 278. avg: 278.
StartDrag. starts: 1. total: 55. avg: 55.
DuringDrag. starts: 2. total: 380. avg: 190. min: 185. max: 195, index: 1
EndMotion. starts: 1. total: 277. avg: 277.
StartDrag. starts: 1. total: 29. avg: 29.
DuringDrag. starts: 2. total: 381. avg: 190. min: 190. max: 190, index: 1
EndMotion. starts: 1. total: 251. avg: 251.
MakeCold. starts: 1. total: 1381. avg: 1381.
MakeHot. starts: 1. total: 578. avg: 578.
ToggleSlope. starts: 1. total: 873. avg: 873.
ToggleSlope. starts: 1. total: 229. avg: 229.
April 16, 1988, Bier, QueenFish. ToggleSlope works incrementally. The SceneBag, TriggerBag, and AlignBag copy faster because they are implemented with non-destructive list operations.
MakeAllHot. starts: 1. total: 1393. avg: 1393.
MakeAllCold. starts: 1. total: 264. avg: 264.
MakeAllHot. starts: 1. total: 240. avg: 240.
ToggleSlope. starts: 1. total: 692. avg: 692.
ToggleSlope. starts: 1. total: 753. avg: 753.
StartAdd. starts: 8. total: 3289. avg: 411. min: 279. max: 489, index: 7
ContinueAdd. starts: 7. total: 158. avg: 22. min: 21. max: 24, index: 7
EndMotion. starts: 1. total: 299. avg: 299.
StartDrag. starts: 1. total: 159. avg: 159.
DuringDrag. starts: 1. total: 242. avg: 242.
EndMotion. starts: 1. total: 286. avg: 286.
StartDrag. starts: 1. total: 30. avg: 30.
DuringDrag. starts: 2. total: 389. avg: 194. min: 191. max: 198, index: 1
EndMotion. starts: 1. total: 259. avg: 259.
StartAdd. starts: 8. total: 2320. avg: 290. min: 198. max: 333, index: 8
ContinueAdd. starts: 7. total: 184. avg: 26. min: 21. max: 39, index: 7
EndMotion. starts: 1. total: 277. avg: 277.
StartDrag. starts: 1. total: 61. avg: 61.
DuringDrag. starts: 2. total: 377. avg: 188. min: 185. max: 192, index: 1
EndMotion. starts: 1. total: 277. avg: 277.
StartDrag. starts: 1. total: 31. avg: 31.
DuringDrag. starts: 2. total: 385. avg: 192. min: 192. max: 193, index: 1
EndMotion. starts: 1. total: 251. avg: 251.
MakeCold. starts: 1. total: 1400. avg: 1400.
MakeHot. starts: 1. total: 518. avg: 518.
ToggleSlope. starts: 1. total: 878. avg: 878.
ToggleSlope. starts: 1. total: 236. avg: 236.
April 16, 1988, Bier, QueenFish. No CONS for the Ray pool. Less Trig functions in JointAddSlopeLine
MakeAllHot. starts: 1. total: 1369. avg: 1369.
MakeAllCold. starts: 1. total: 261. avg: 261.
MakeAllHot. starts: 1. total: 238. avg: 238.
ToggleSlope. starts: 1. total: 657. avg: 657.
ToggleSlope. starts: 1. total: 715. avg: 715.
StartAdd. starts: 8. total: 3086. avg: 385. min: 279. max: 458, index: 7
ContinueAdd. starts: 7. total: 174. avg: 24. min: 21. max: 39, index: 7
EndMotion. starts: 1. total: 293. avg: 293.
StartDrag. starts: 1. total: 157. avg: 157.
DuringDrag. starts: 1. total: 243. avg: 243.
EndMotion. starts: 1. total: 288. avg: 288.
StartDrag. starts: 1. total: 31. avg: 31.
DuringDrag. starts: 2. total: 390. avg: 195. min: 192. max: 198, index: 1
EndMotion. starts: 1. total: 262. avg: 262.
StartAdd. starts: 8. total: 2332. avg: 291. min: 198. max: 334, index: 8
ContinueAdd. starts: 7. total: 155. avg: 22. min: 20. max: 23, index: 7
EndMotion. starts: 1. total: 278. avg: 278.
StartDrag. starts: 1. total: 61. avg: 61.
DuringDrag. starts: 2. total: 381. avg: 190. min: 187. max: 194, index: 1
EndMotion. starts: 1. total: 279. avg: 279.
StartDrag. starts: 1. total: 31. avg: 31.
DuringDrag. starts: 2. total: 384. avg: 192. min: 192. max: 192, index: 2
EndMotion. starts: 1. total: 251. avg: 251.
MakeCold. starts: 1. total: 1341. avg: 1341.
MakeHot. starts: 1. total: 515. avg: 515.
ToggleSlope. starts: 1. total: 850. avg: 850.
ToggleSlope. starts: 1. total: 226. avg: 226.
August 11, 1988, Bier, QueenFish. After adding UNDO and buffering for the color display.
MakeAllHot. starts: 1. total: 1527. avg: 1527.
MakeAllCold. starts: 1. total: 325. avg: 325.
MakeAllHot. starts: 1. total: 301. avg: 301.
ToggleSlope. starts: 1. total: 664. avg: 664.
ToggleSlope. starts: 1. total: 713. avg: 713.
StartAdd. starts: 8. total: 3713. avg: 464. min: 358. max: 520, index: 4
ContinueAdd. starts: 7. total: 183. avg: 26. min: 22. max: 37, index: 2
EndMotion. starts: 1. total: 421. avg: 421.
StartDrag. starts: 1. total: 156. avg: 156.
DuringDrag. starts: 1. total: 243. avg: 243.
EndMotion. starts: 1. total: 349. avg: 349.
StartDrag. starts: 1. total: 33. avg: 33.
DuringDrag. starts: 2. total: 399. avg: 199. min: 196. max: 202, index: 1
EndMotion. starts: 1. total: 348. avg: 348.
StartAdd. starts: 8. total: 2499. avg: 312. min: 203. max: 380, index: 8
ContinueAdd. starts: 7. total: 180. avg: 25. min: 21. max: 37, index: 1
EndMotion. starts: 1. total: 416. avg: 416.
StartDrag. starts: 1. total: 62. avg: 62.
DuringDrag. starts: 2. total: 383. avg: 191. min: 188. max: 195, index: 1
EndMotion. starts: 1. total: 337. avg: 337.
StartDrag. starts: 1. total: 34. avg: 34.
DuringDrag. starts: 2. total: 391. avg: 195. min: 195. max: 196, index: 1
EndMotion. starts: 1. total: 396. avg: 396.
MakeCold. starts: 1. total: 1424. avg: 1424.
MakeHot. starts: 1. total: 566. avg: 566.
ToggleSlope. starts: 1. total: 844. avg: 844.
ToggleSlope. starts: 1. total: 242. avg: 242.
November 2, 1989, Bier, QueenFish.
MakeAllHot. starts: 1. total: 1392. avg: 1392.
MakeAllCold. starts: 1. total: 315. avg: 315.
MakeAllHot. starts: 1. total: 237. avg: 237.
ToggleSlope. starts: 1. total: 588. avg: 588.
ToggleSlope. starts: 1. total: 678. avg: 678.
StartAdd. starts: 8. total: 3217. avg: 402. min: 322. max: 477, index: 7
ContinueAdd. starts: 7. total: 199. avg: 28. min: 24. max: 40, index: 2
EndMotion. starts: 1. total: 570. avg: 570.
StartDrag. starts: 1. total: 159. avg: 159.
DuringDrag. starts: 1. total: 248. avg: 248.
EndMotion. starts: 1. total: 447. avg: 447.
StartDrag. starts: 1. total: 46. avg: 46.
DuringDrag. starts: 2. total: 289. avg: 144. min: 143. max: 146, index: 2
EndMotion. starts: 1. total: 239. avg: 239.
StartAdd. starts: 8. total: 2452. avg: 306. min: 206. max: 359, index: 8, overflows: 0
ContinueAdd. starts: 7. total: 210. avg: 30. min: 23. max: 44, index: 7, overflows: 0
EndMotion. starts: 1. total: 339. avg: 339.
StartDrag. starts: 1. total: 72. avg: 72.
DuringDrag. starts: 2. total: 380. avg: 190. min: 182. max: 197, index: 1
EndMotion. starts: 1. total: 420. avg: 420.
StartDrag. starts: 1. total: 49. avg: 49. min: 49. max: 49, index: 1
DuringDrag. starts: 2. total: 288. avg: 144. min: 143. max: 145, index: 1
EndMotion. starts: 1. total: 313. avg: 313.
MakeCold. starts: 1. total: 1294. avg: 1294.
MakeHot. starts: 1. total: 522. avg: 522.
ToggleSlope. starts: 1. total: 800. avg: 800.
ToggleSlope. starts: 1. total: 210. avg: 210.
April 18, 1990, Bier, Pippin
MakeAllHot. n: 1. total: 2159. avg: 2159. range: [2159..2159], worst: 1
MakeAllCold. n: 1. total: 504. avg: 504. range: [504..504], worst: 1
MakeAllHot. n: 1. total: 479. avg: 479. range: [479..479], worst: 1
ToggleSlope. n: 1. total: 686. avg: 686. range: [686..686], worst: 1
ToggleSlope. n: 1. total: 934. avg: 934. range: [934..934], worst: 1
StartAdd. n: 8. total: 7083. avg: 885. range: [613..1654], worst: 1
ContinueAdd. n: 7. total: 477. avg: 68. range: [13..113], worst: 1
EndMotion. n: 1. total: 681. avg: 681. range: [681..681], worst: 1
StartDrag. n: 1. total: 308. avg: 308. range: [308..308], worst: 1
DuringDrag. n: 1. total: 708. avg: 708. range: [708..708], worst: 1
EndMotion. n: 1. total: 647. avg: 647. range: [647..647], worst: 1
StartDrag. n: 1. total: 68. avg: 68. range: [68..68], worst: 1
DuringDrag. n: 2. total: 1126. avg: 563. range: [541..585], worst: 1
EndMotion. n: 1. total: 626. avg: 626. range: [626..626], worst: 1
StartAdd. n: 8. total: 5825. avg: 728. range: [561..1114], worst: 1
ContinueAdd. n: 7. total: 214. avg: 30. range: [12..60], worst: 2
EndMotion. n: 1. total: 739. avg: 739. range: [739..739], worst: 1
StartDrag. n: 1. total: 107. avg: 107. range: [107..107], worst: 1
DuringDrag. n: 2. total: 1308. avg: 654. range: [558..749], worst: 1
EndMotion. n: 1. total: 980. avg: 980. range: [980..980], worst: 1
StartDrag. n: 1. total: 107. avg: 107. range: [107..107], worst: 1
DuringDrag. n: 2. total: 1203. avg: 601. range: [541..661], worst: 1
EndMotion. n: 1. total: 713. avg: 713. range: [713..713], worst: 1
MakeCold. n: 1. total: 1505. avg: 1505. range: [1505..1505], worst: 1
MakeHot. n: 1. total: 905. avg: 905. range: [905..905], worst: 1
ToggleSlope. n: 1. total: 972. avg: 972. range: [972..972], worst: 1
ToggleSlope. n: 1. total: 272. avg: 272. range: [272..272], worst: 1
Finished playback of /net/gharlane/cree/gargoyle/BagsTest.script in time (00:00:58)
5) Play BagsTest.script (on a Daybreak). Record all statistics. Test bags with lots of slope lines.
April 17, 1988, Bier, on a Daybreak
MakeAllHot. starts: 1. total: 5318. avg: 5318.
MakeAllCold. starts: 1. total: 1048. avg: 1048.
MakeAllHot. starts: 1. total: 916. avg: 916.
ToggleSlope. starts: 1. total: 2471. avg: 2471.
ToggleSlope. starts: 1. total: 2824. avg: 2824.
StartAdd. starts: 8. total: 13339. avg: 1667. min: 1164. max: 1948, index: 7
ContinueAdd. starts: 7. total: 809. avg: 115. min: 75. max: 159, index: 7
EndMotion. starts: 1. total: 1147. avg: 1147.
StartDrag. starts: 1. total: 659. avg: 659.
DuringDrag. starts: 1. total: 954. avg: 954.
EndMotion. starts: 1. total: 1104. avg: 1104.
StartDrag. starts: 1. total: 148. avg: 148.
DuringDrag. starts: 2. total: 1544. avg: 772. min: 770. max: 774, index: 2
EndMotion. starts: 1. total: 1019. avg: 1019.
StartAdd. starts: 8. total: 8933. avg: 1116. min: 774. max: 1359, index: 8
ContinueAdd. starts: 7. total: 905. avg: 129. min: 93. max: 176, index: 3
EndMotion. starts: 1. total: 1059. avg: 1059.
StartDrag. starts: 1. total: 259. avg: 259.
DuringDrag. starts: 2. total: 1514. avg: 757. min: 742. max: 772, index: 1
EndMotion. starts: 1. total: 1065. avg: 1065.
StartDrag. starts: 1. total: 129. avg: 129.
DuringDrag. starts: 2. total: 1532. avg: 766. min: 759. max: 772, index: 1
EndMotion. starts: 1. total: 992. avg: 992.
MakeCold. starts: 1. total: 5310. avg: 5310.
MakeHot. starts: 1. total: 1904. avg: 1904.
ToggleSlope. starts: 1. total: 3343. avg: 3343.
ToggleSlope. starts: 1. total: 849. avg: 849.
Refresh Time
1) Play RefreshPerformance.script. (windowhacker.gargoyle):
PaintEntireScene. Using BuildPath for MaskStroke. starts: 1. avg: 3921
PaintEntireScene. Second Trial. starts: 1. avg: 3945
PaintEntireScene. Using MaskStroke for MaskStroke. starts: 1. avg: 3476
PaintEntireScene. Second Trial. starts: 1. avg: 3466, July 7, 1986, Bier on Langley
 A 13% difference.
PaintEntireScene. Using PaintSingleStrokeTraj starts: 1. avg: 3133
PaintEntireScene. Second Trial. starts: 1. total: 3030
PaintEntireScene. avg: 3096, October 1, 1986, Bier, Independence
March 11, 1987, Bier, QueenFish. Cedar7.0.
PaintEntireScene. starts: 1. total: 2859. avg: 2859.
February 9, 1988, Bier, QueenFish. Objectified trajectories.
PaintEntireScene. starts: 1. total: 2702.
PaintEntireScene. starts: 1. total: 2792.
PaintEntireScene. starts: 1. total: 2954.
PaintEntireScene. starts: 1. total: 2734.
May 6, 1988, Bier, Taxco. Routine test.
PaintEntireScene. starts: 1. total: 2655.
July 6, 1988, Pier, Independence. New refresh package using DoWithBuffer.
PaintEntireScene. starts: 1. total: 2751.
PaintEntireScene. starts: 1. total: 2746.
March 14, 1989, Bier, Queenfish. After making removing double-buffering from Refresh, and adding Turbo-trajectories.
PaintEntireScene. starts: 1. total: 8326.
PaintEntireScene. starts: 1. total: 8434.
March 14, 1989, Bier, Queenfish. With turbo-trajectories turned off.
PaintEntireScene. starts: 1. total: 2562.
March 14, 1989, Bier, Queenfish. After increasing the size of the Imager.Object cache.
PaintEntireScene. starts: 1. total: 1339.
March 14, 1989, Bier, Queenfish. Using the new ImagerBitmapContext with hash tables.
PaintEntireScene. starts: 1. total: 1331.
PaintEntireScene. starts: 1. total: 1351.
November 2, 1989, Bier, Queenfish.
PaintEntireScene. starts: 1. total: 1426. avg: 1426. min: 1426. max: 1426, index: 1
PaintEntireScene. starts: 1. total: 1424. avg: 1424. min: 1424. max: 1424, index: 1
April 18, 1990, Bier, Pippin
PaintEntireScene. n: 1. total: 1057. avg: 1057. range: [1057..1057], worst: 1
September 6, 1990 4:04:00 pm PDT, Pier, Pierrot. Released Imager and FP package.
PaintEntireScene. n: 1. total: 1430. avg: 1430. range: [1430..1430], worst: 1
PaintEntireScene. n: 1. total: 1405. avg: 1405. range: [1405..1405], worst: 1
September 6, 1990 4:04:00 pm PDT, Pier, Pierrot. New Imager and FP package compiled with "f" switch.
PaintEntireScene. n: 1. total: 1238. avg: 1238. range: [1238..1238], worst: 1
PaintEntireScene. n: 1. total: 1206. avg: 1206. range: [1206..1206], worst: 1
2) Load Halftones.gargoyle. Playback HalftonesRefresh.script
PaintEntireScene. starts: 1. total: 13564. avg: 13564.
January 7, 1987, Bier, QueenFish
PaintEntireScene. starts: 1. total: 5497. avg: 5497.
January 7, 1987, Bier, QueenFish. After speeding up the joint generator for trajectories. Compare this to 2710 msec with nothing selected.
March 11, 1987, Bier, QueenFish. Cedar7.0. This must be an Imager speedup.
PaintEntireScene. starts: 1. total: 2821. avg: 2821. min: 2821. max: 2821, index: 1
July 6, 1988. Pier, Independence. Script did nothing. No refresh command in script, version 18-Mar-88 15:49:25 PST. Fixed. Test with new refresh package using DoWithBuffer.
PaintEntireScene. starts: 1. total: 2466.
PaintEntireScene. starts: 1. total: 2433.
March 14, 1989, Bier, QueenFish. With turbo trajectories on. Script repaired.
PaintEntireScene. starts: 1. total: 3428.
March 14, 1989, Bier, QueenFish. With turbo trajectories off.
PaintEntireScene. starts: 1. total: 2834.
November 2, 1989, Bier, QueenFish.
PaintEntireScene. starts: 1. total: 3211. avg: 3211.
PaintEntireScene. starts: 1. total: 3202. avg: 3202.
April 18, 1990, Bier, Pippin
PaintEntireScene. n: 1. total: 1344. avg: 1344
3) Obsolete (lost script). Play Penrose.script. Record the time for PaintEntireScene. Control panel at the top.
March 14, 1989, Bier, Queenfish. Turbo trajectories.
PaintEntireScene. starts: 1. total: 5711.
PaintEntireScene. starts: 1. total: 5547.
March 14, 1989, Bier, Queenfish. With turbo off.
PaintEntireScene. starts: 1. total: 9007.
PaintEntireScene. starts: 1. total: 9010.
March 14, 1989, Bier, Queenfish. Turbo trajectories and using hashing for shape lookup.
PaintEntireScene. starts: 1. total: 6173.
PaintEntireScene. starts: 1. total: 5573.
November 2, 1989, Bier, Queenfish
PaintEntireScene. starts: 1. total: 5308. avg: 5308.
PaintEntireScene. starts: 1. total: 5304. avg: 5304.
4) Play RefreshTest.script. Record all statistics.
February 26, 1990, Bier, Pippin
StartCaretPos. starts: 5. total: 3759. avg: 751. min: 656. max: 1035, index: 2
EndCaretPos. starts: 5. total: 5481. avg: 1096. min: 848. max: 1321, index: 4
DoWithBuffer. starts: 10. total: 5426. avg: 542. min: 450. max: 688, index: 8
DrawNoMap. starts: 30. total: 386. avg: 12. min: 0. max: 43, index: 22
TransferLayer. starts: 10. total: 1437. avg: 143. min: 119. max: 235, index: 8
MaskLayer. starts: 10. total: 1. avg: 0. min: 0. max: 0, index: 6

StartCaretPos. starts: 5. total: 5456. avg: 1091. min: 897. max: 1716, index: 1
EndCaretPos. starts: 5. total: 7245. avg: 1449. min: 1349. max: 1604, index: 1
DoWithBuffer. starts: 10. total: 7435. avg: 743. min: 708. max: 777, index: 8
DrawNoMap. starts: 30. total: 459. avg: 15. min: 1. max: 67, index: 24
TransferLayer. starts: 10. total: 1330. avg: 133. min: 115. max: 170, index: 3
MaskLayer. starts: 10. total: 2315. avg: 231. min: 218. max: 247, index: 4

StartMotion. starts: 5. total: 998. avg: 199. min: 155. max: 303, index: 1
EndMotion. starts: 5. total: 6070. avg: 1214. min: 1086. max: 1664, index: 4
DoWithBuffer. starts: 10. total: 5414. avg: 541. min: 422. max: 682, index: 4
DrawNoMap. starts: 30. total: 482. avg: 16. min: 0. max: 75, index: 1
TransferLayer. starts: 10. total: 1407. avg: 140. min: 107. max: 256, index: 3
MaskLayer. starts: 10. total: 1. avg: 0. min: 0. max: 0, index: 4
Finished playback of /net/chroma/bleu/gargoyle/RefreshTest.script in time (00:01:25)
February 27, 1990, Bier, Pippin. After Russ improved MaskBitmap and I made Gargoyle more careful about the empty alignment layer.
(1) Basic Caret Motion
StartCaretPos. starts: 5. total: 2054. avg: 410. min: 328. max: 493, index: 5, overflows: 0
EndCaretPos. starts: 5. total: 3616. avg: 723. min: 594. max: 781, index: 4, overflows: 0
DoWithBuffer. starts: 10. total: 3494. avg: 349. min: 259. max: 433, index: 2, overflows: 0
DrawNoMap. starts: 30. total: 335. avg: 11. min: 0. max: 55, index: 6, overflows: 0
TransferLayer. starts: 10. total: 1193. avg: 119. min: 90. max: 164, index: 9, overflows: 0
MaskLayer. starts: 10. total: 1. avg: 0. min: 0. max: 0, index: 2, overflows: 0

(2) Caret and Anchor
StartCaretPos. starts: 5. total: 2008. avg: 401. min: 299. max: 586, index: 3, overflows: 0
EndCaretPos. starts: 5. total: 3941. avg: 788. min: 762. max: 845, index: 3, overflows: 0
DoWithBuffer. starts: 10. total: 3320. avg: 332. min: 241. max: 398, index: 6, overflows: 0
DrawNoMap. starts: 30. total: 339. avg: 11. min: 0. max: 75, index: 15, overflows: 0
TransferLayer. starts: 10. total: 1142. avg: 114. min: 83. max: 150, index: 7, overflows: 0
MaskLayer. starts: 10. total: 1. avg: 0. min: 0. max: 0, index: 2, overflows: 0

(3) Interactive Translation
StartMotion. starts: 5. total: 761. avg: 152. min: 123. max: 247, index: 3, overflows: 0
EndMotion. starts: 5. total: 4138. avg: 827. min: 697. max: 986, index: 1, overflows: 0
DoWithBuffer. starts: 10. total: 3849. avg: 384. min: 295. max: 482, index: 7, overflows: 0
DrawNoMap. starts: 30. total: 535. avg: 17. min: 0. max: 128, index: 19, overflows: 0
TransferLayer. starts: 10. total: 1301. avg: 130. min: 91. max: 163, index: 3, overflows: 0
MaskLayer. starts: 10. total: 1. avg: 0. min: 0. max: 0, index: 4, overflows: 0
Finished playback of /net/chroma/bleu/gargoyle/RefreshTest.script in time (00:00:42)
March 8, 1990, Bier, Pippin. After Russ improved RasterOp.
(1) Basic Caret Motion
StartCaretPos. starts: 5. total: 1814. avg: 362. min: 278. max: 467, index: 1, overflows: 0
EndCaretPos. starts: 5. total: 3444. avg: 688. min: 620. max: 767, index: 3, overflows: 0
DoWithBuffer. starts: 10. total: 2906. avg: 290. min: 222. max: 398, index: 1, overflows: 0
DrawNoMap. starts: 30. total: 291. avg: 9. min: 0. max: 45, index: 3, overflows: 0
TransferLayer. starts: 10. total: 836. avg: 83. min: 65. max: 107, index: 5, overflows: 0
MaskLayer. starts: 10. total: 1. avg: 0. min: 0. max: 0, index: 1, overflows: 0

(2) Caret and Alignments
StartCaretPos. starts: 5. total: 1739. avg: 347. min: 279. max: 492, index: 4, overflows: 0
EndCaretPos. starts: 5. total: 3610. avg: 722. min: 649. max: 841, index: 3, overflows: 0
DoWithBuffer. starts: 10. total: 3146. avg: 314. min: 222. max: 414, index: 6, overflows: 0
DrawNoMap. starts: 30. total: 358. avg: 11. min: 0. max: 47, index: 18, overflows: 0
TransferLayer. starts: 10. total: 845. avg: 84. min: 61. max: 108, index: 2, overflows: 0
MaskLayer. starts: 10. total: 221. avg: 22. min: 15. max: 32, index: 6, overflows: 0

(3) Interactive Translation
StartMotion. starts: 5. total: 1058. avg: 211. min: 163. max: 283, index: 3, overflows: 0
EndMotion. starts: 5. total: 4018. avg: 803. min: 655. max: 967, index: 5, overflows: 0
DoWithBuffer. starts: 10. total: 3370. avg: 337. min: 270. max: 512, index: 7, overflows: 0
DrawNoMap. starts: 30. total: 319. avg: 10. min: 0. max: 44, index: 19, overflows: 0
TransferLayer. starts: 10. total: 1021. avg: 102. min: 62. max: 178, index: 7, overflows: 0
MaskLayer. starts: 10. total: 1. avg: 0. min: 0. max: 0, index: 3, overflows: 0
Finished playback of /net/chroma/bleu/gargoyle/RefreshTest.script in time (00:00:42)
March 16, 1990, Bier, Pippin. With changeRect BufferedRefresh.
(1) Basic Caret Motion
StartCaretPos. starts: 5. total: 1075. avg: 215. min: 85. max: 430, index: 1, overflows: 0
EndCaretPos. starts: 5. total: 4756. avg: 951. min: 928. max: 969, index: 3, overflows: 0
DoWithBuffer. starts: 10. total: 2584. avg: 258. min: 38. max: 467, index: 8, overflows: 0
DrawNoMap. starts: 30. total: 497. avg: 16. min: 2. max: 112, index: 15, overflows: 0
TransferLayer. starts: 10. total: 690. avg: 69. min: 6. max: 147, index: 6, overflows: 0
MaskLayer. starts: 10. total: 1. avg: 0. min: 0. max: 0, index: 3, overflows: 0

(2) Caret and Alignments
StartCaretPos. starts: 5. total: 2817. avg: 563. min: 421. max: 703, index: 1, overflows: 0
EndCaretPos. starts: 5. total: 4915. avg: 983. min: 904. max: 1037, index: 3, overflows: 0
DoWithBuffer. starts: 10. total: 3995. avg: 399. min: 301. max: 509, index: 6, overflows: 0
DrawNoMap. starts: 30. total: 500. avg: 16. min: 2. max: 61, index: 3, overflows: 0
TransferLayer. starts: 10. total: 1042. avg: 104. min: 80. max: 138, index: 4, overflows: 0
MaskLayer. starts: 10. total: 250. avg: 25. min: 17. max: 43, index: 4, overflows: 0

(3) Interactive Translation
StartMotion. starts: 5. total: 867. avg: 173. min: 153. max: 196, index: 2, overflows: 0
EndMotion. starts: 5. total: 5956. avg: 1191. min: 1067. max: 1483, index: 3, overflows: 0
DoWithBuffer. starts: 10. total: 5004. avg: 500. min: 370. max: 714, index: 10, overflows: 0
DrawNoMap. starts: 30. total: 687. avg: 22. min: 2. max: 88, index: 1, overflows: 0
TransferLayer. starts: 10. total: 1706. avg: 170. min: 136. max: 266, index: 5, overflows: 0
MaskLayer. starts: 10. total: 1. avg: 0. min: 0. max: 0, index: 9, overflows: 0
Finished playback of /net/gharlane/cree/gargoyle/RefreshTest.script in time (00:00:53)
February 27, 1990, Bier, Ark-Royal (Dorado, black-and-white)
(1) Basic Caret Motion
StartCaretPos. starts: 5. total: 480. avg: 96. min: 94. max: 102, index: 1, overflows: 0
EndCaretPos. starts: 5. total: 585. avg: 117. min: 116. max: 117, index: 4, overflows: 0
DoWithBuffer. starts: 10. total: 578. avg: 57. min: 51. max: 67, index: 6, overflows: 0
DrawNoMap. starts: 30. total: 159. avg: 5. min: 0. max: 14, index: 15, overflows: 0
TransferLayer. starts: 10. total: 166. avg: 16. min: 12. max: 28, index: 8, overflows: 0
MaskLayer. starts: 10. total: 0. avg: 0. min: 0. max: 0, index: 2, overflows: 0

(2) Caret and Anchor
StartCaretPos. starts: 5. total: 559. avg: 111. min: 104. max: 127, index: 1, overflows: 0
EndCaretPos. starts: 5. total: 621. avg: 124. min: 120. max: 130, index: 5, overflows: 0
DoWithBuffer. starts: 10. total: 650. avg: 65. min: 61. max: 92, index: 1, overflows: 0
DrawNoMap. starts: 30. total: 265. avg: 8. min: 0. max: 25, index: 12, overflows: 0
TransferLayer. starts: 10. total: 158. avg: 15. min: 12. max: 43, index: 1, overflows: 0
MaskLayer. starts: 10. total: 0. avg: 0. min: 0. max: 0, index: 1, overflows: 0

(3) Interactive Translation
StartMotion. starts: 5. total: 378. avg: 75. min: 62. max: 95, index: 4, overflows: 0
EndMotion. starts: 5. total: 1071. avg: 214. min: 190. max: 223, index: 1, overflows: 0
DoWithBuffer. starts: 10. total: 766. avg: 76. min: 59. max: 94, index: 1, overflows: 0
DrawNoMap. starts: 30. total: 408. avg: 13. min: 0. max: 42, index: 25, overflows: 0
TransferLayer. starts: 10. total: 127. avg: 12. min: 12. max: 13, index: 2, overflows: 0
MaskLayer. starts: 10. total: 0. avg: 0. min: 0. max: 0, index: 1, overflows: 0
Finished playback of ///Users/bier.pa/Gargoyle/RefreshTest.script in time (00:00:11)
February 27, 1990, Bier, Ark-Royal (Dorado, black-and-white), after changing part 2.
(1) Basic Caret Motion
StartCaretPos. starts: 5. total: 505. avg: 101. min: 96. max: 102, index: 2, overflows: 0
EndCaretPos. starts: 5. total: 551. avg: 110. min: 109. max: 110, index: 2, overflows: 0
DoWithBuffer. starts: 10. total: 611. avg: 61. min: 51. max: 67, index: 3, overflows: 0
DrawNoMap. starts: 30. total: 191. avg: 6. min: 0. max: 29, index: 21, overflows: 0
TransferLayer. starts: 10. total: 151. avg: 15. min: 12. max: 28, index: 5, overflows: 0
MaskLayer. starts: 10. total: 0. avg: 0. min: 0. max: 0, index: 1, overflows: 0

(2) Caret and Alignments
StartCaretPos. starts: 5. total: 619. avg: 123. min: 118. max: 131, index: 1, overflows: 0
EndCaretPos. starts: 5. total: 737. avg: 147. min: 133. max: 180, index: 3, overflows: 0
DoWithBuffer. starts: 10. total: 794. avg: 79. min: 74. max: 90, index: 3, overflows: 0
DrawNoMap. starts: 30. total: 284. avg: 9. min: 0. max: 33, index: 30, overflows: 0
TransferLayer. starts: 10. total: 153. avg: 15. min: 12. max: 28, index: 3, overflows: 0
MaskLayer. starts: 10. total: 129. avg: 12. min: 12. max: 13, index: 1, overflows: 0

(3) Interactive Translation
StartMotion. starts: 5. total: 489. avg: 97. min: 66. max: 136, index: 3, overflows: 0
EndMotion. starts: 5. total: 1027. avg: 205. min: 168. max: 233, index: 1, overflows: 0
DoWithBuffer. starts: 10. total: 766. avg: 76. min: 59. max: 94, index: 5, overflows: 0
DrawNoMap. starts: 30. total: 408. avg: 13. min: 0. max: 43, index: 25, overflows: 0
TransferLayer. starts: 10. total: 128. avg: 12. min: 12. max: 13, index: 3, overflows: 0
MaskLayer. starts: 10. total: 0. avg: 0. min: 0. max: 0, index: 2, overflows: 0
Finished playback of /gargoyle/Benchmark/RefreshTest.script in time (00:00:11)
April 16, 1990, Bier, Pippin. After creating the new CodeTimer. Nitro off.
(1) Basic Caret Motion
HandleGuarded. n: 15. total: 4989. avg: 332. range: [0..831], worst: 3
EndCaretPos. n: 5. total: 3803. avg: 760. range: [678..830], worst: 1
RestoreScreenAndInvariants. n: 5. total: 1843. avg: 368. range: [351..389], worst: 2
PaintViewer. n: 5. total: 1838. avg: 367. range: [350..389], worst: 2
DoWithBuffer. n: 5. total: 1620. avg: 324. range: [304..343], worst: 4
MaskLayer. n: 5. total: 0. avg: 0. range: [0..0], worst: 1
DrawNoMap. n: 20. total: 499. avg: 24. range: [2..85], worst: 13
RefreshCaretPlane. n: 5. total: 129. avg: 25. range: [18..42], worst: 5
RefreshCPFeedback. n: 5. total: 7. avg: 1. range: [1..1], worst: 2
RefreshOverlay. n: 5. total: 7. avg: 1. range: [1..1], worst: 1
RefreshBackground. n: 5. total: 68. avg: 13. range: [3..34], worst: 4
LayerWhite. n: 5. total: 196. avg: 39. range: [35..46], worst: 5
MultiMap. n: 5. total: 9. avg: 1. range: [0..3], worst: 3
StartCaretPos. n: 5. total: 1153. avg: 230. range: [129..328], worst: 3
DuringCaretPos. n: 5. total: 976. avg: 195. range: [115..287], worst: 2
RestoreScreenAndInvariants. n: 5. total: 559. avg: 111. range: [67..163], worst: 2
PaintViewer. n: 5. total: 556. avg: 111. range: [67..162], worst: 2
DoWithBuffer. n: 5. total: 385. avg: 77. range: [37..111], worst: 1
MaskLayer. n: 5. total: 0. avg: 0. range: [0..0], worst: 1
DrawNoMap. n: 20. total: 264. avg: 13. range: [2..57], worst: 8
RefreshCaretPlane. n: 5. total: 111. avg: 22. range: [8..54], worst: 2
RefreshCPFeedback. n: 5. total: 1. avg: 0. range: [0..0], worst: 1
RefreshOverlay. n: 5. total: 6. avg: 1. range: [0..2], worst: 1
RefreshBackground. n: 5. total: 15. avg: 3. range: [1..9], worst: 3
LayerWhite. n: 5. total: 54. avg: 10. range: [1..42], worst: 1
MultiMap. n: 5. total: 7. avg: 1. range: [0..2], worst: 1
SawTextFinish. n: 5. total: 2. avg: 0. range: [0..0], worst: 2

(2) Caret and Alignments
HandleGuarded. n: 15. total: 6665. avg: 444. range: [0..866], worst: 3
EndCaretPos. n: 5. total: 4202. avg: 840. range: [807..865], worst: 1
RestoreScreenAndInvariants. n: 5. total: 2137. avg: 427. range: [415..451], worst: 2
PaintViewer. n: 5. total: 2127. avg: 425. range: [414..451], worst: 2
DoWithBuffer. n: 5. total: 1903. avg: 380. range: [361..416], worst: 2
MaskLayer. n: 5. total: 171. avg: 34. range: [19..77], worst: 2
DrawNoMap. n: 20. total: 700. avg: 35. range: [2..101], worst: 9
RefreshCaretPlane. n: 5. total: 193. avg: 38. range: [33..43], worst: 1
RefreshCPFeedback. n: 5. total: 9. avg: 1. range: [1..3], worst: 2
RefreshOverlay. n: 5. total: 55. avg: 11. range: [1..28], worst: 1
RefreshBackground. n: 5. total: 70. avg: 14. range: [6..28], worst: 3
LayerWhite. n: 5. total: 238. avg: 47. range: [36..63], worst: 2
MultiMap. n: 5. total: 6. avg: 1. range: [0..2], worst: 2
StartCaretPos. n: 5. total: 2409. avg: 481. range: [406..573], worst: 4
DuringCaretPos. n: 5. total: 2339. avg: 467. range: [395..557], worst: 4
RestoreScreenAndInvariants. n: 5. total: 1955. avg: 391. range: [343..483], worst: 4
PaintViewer. n: 5. total: 1952. avg: 390. range: [342..483], worst: 4
DoWithBuffer. n: 5. total: 1790. avg: 358. range: [287..452], worst: 4
MaskLayer. n: 5. total: 167. avg: 33. range: [19..71], worst: 5
DrawNoMap. n: 20. total: 679. avg: 33. range: [2..108], worst: 13
RefreshCaretPlane. n: 5. total: 204. avg: 40. range: [19..54], worst: 2
RefreshCPFeedback. n: 5. total: 10. avg: 2. range: [0..3], worst: 4
RefreshOverlay. n: 5. total: 18. avg: 3. range: [0..14], worst: 3
RefreshBackground. n: 5. total: 40. avg: 8. range: [2..12], worst: 1
LayerWhite. n: 5. total: 263. avg: 52. range: [34..86], worst: 4
MultiMap. n: 5. total: 9. avg: 1. range: [0..2], worst: 2
SawTextFinish. n: 5. total: 7. avg: 1. range: [0..7], worst: 3

(3) Interactive Translation
HandleGuarded. n: 15. total: 8185. avg: 545. range: [0..993], worst: 6
EndMotion. n: 5. total: 4756. avg: 951. range: [918..991], worst: 2
RestoreScreenAndInvariants. n: 5. total: 3420. avg: 684. range: [529..944], worst: 2
PaintViewer. n: 5. total: 3232. avg: 646. range: [481..906], worst: 2
DoWithBuffer. n: 5. total: 2403. avg: 480. range: [402..665], worst: 2
MaskLayer. n: 5. total: 16. avg: 3. range: [0..15], worst: 3
DrawNoMap. n: 20. total: 1262. avg: 63. range: [3..345], worst: 5
RefreshCaretPlane. n: 5. total: 58. avg: 11. range: [9..16], worst: 2
RefreshCPFeedback. n: 5. total: 43. avg: 8. range: [7..10], worst: 3
RefreshOverlay. n: 5. total: 13. avg: 2. range: [1..6], worst: 4
RefreshBackground. n: 5. total: 822. avg: 164. range: [131..255], worst: 2
LayerWhite. n: 5. total: 224. avg: 44. range: [36..59], worst: 2
RepairBackgroundInBoundBox. n: 5. total: 4. avg: 0. range: [0..1], worst: 4
DynamicToStaticBags. n: 5. total: 9. avg: 1. range: [0..3], worst: 1
DuringDrag. n: 5. total: 2796. avg: 559. range: [446..678], worst: 1
RestoreScreenAndInvariants. n: 5. total: 2334. avg: 466. range: [369..549], worst: 1
PaintViewer. n: 5. total: 2327. avg: 465. range: [369..549], worst: 1
DoWithBuffer. n: 5. total: 2195. avg: 439. range: [355..521], worst: 1
MaskLayer. n: 5. total: 0. avg: 0. range: [0..0], worst: 1
DrawNoMap. n: 20. total: 1066. avg: 53. range: [2..184], worst: 17
RefreshCaretPlane. n: 5. total: 55. avg: 11. range: [8..16], worst: 1
RefreshCPFeedback. n: 5. total: 3. avg: 0. range: [0..1], worst: 3
RefreshOverlay. n: 5. total: 136. avg: 27. range: [22..30], worst: 1
RefreshBackground. n: 5. total: 588. avg: 117. range: [104..128], worst: 5
LayerWhite. n: 5. total: 207. avg: 41. range: [36..47], worst: 3
MultiMap. n: 5. total: 2. avg: 0. range: [0..0], worst: 3
StartDrag. n: 5. total: 562. avg: 112. range: [71..187], worst: 3
StartMotion. n: 5. total: 560. avg: 112. range: [71..187], worst: 3
StaticToDynamicBags. n: 5. total: 23. avg: 4. range: [4..5], worst: 3
RepairBackgroundInBoundBox. n: 5. total: 29. avg: 5. range: [2..12], worst: 4
SawTextFinish. n: 5. total: 1. avg: 0. range: [0..0], worst: 1
Finished playback of /net/gharlane/cree/gargoyle/RefreshTest.script in time (00:00:48)
April 16, 1990, Bier, Pippin. Nitro ON.
(1) Basic Caret Motion
HandleGuarded. n: 15. total: 1775. avg: 118. range: [0..352], worst: 3
EndCaretPos. n: 5. total: 1331. avg: 266. range: [215..352], worst: 1
RestoreScreenAndInvariants. n: 5. total: 1085. avg: 217. range: [182..291], worst: 1
PaintViewer. n: 5. total: 1083. avg: 216. range: [182..291], worst: 1
DoWithBuffer. n: 5. total: 1056. avg: 211. range: [177..284], worst: 1
MaskLayer. n: 5. total: 0. avg: 0. range: [0..0], worst: 1
DrawNoMap. n: 20. total: 382. avg: 19. range: [1..76], worst: 1
RefreshCaretPlane. n: 5. total: 84. avg: 16. range: [8..34], worst: 1
RefreshCPFeedback. n: 5. total: 1. avg: 0. range: [0..0], worst: 4
RefreshOverlay. n: 5. total: 1. avg: 0. range: [0..0], worst: 5
RefreshBackground. n: 5. total: 9. avg: 1. range: [1..3], worst: 4
LayerWhite. n: 5. total: 211. avg: 42. range: [34..71], worst: 1
MultiMap. n: 5. total: 0. avg: 0. range: [0..0], worst: 1
StartCaretPos. n: 5. total: 434. avg: 86. range: [68..104], worst: 1
DuringCaretPos. n: 5. total: 420. avg: 84. range: [66..101], worst: 1
RestoreScreenAndInvariants. n: 5. total: 263. avg: 52. range: [43..75], worst: 1
PaintViewer. n: 5. total: 261. avg: 52. range: [42..75], worst: 1
DoWithBuffer. n: 5. total: 212. avg: 42. range: [24..66], worst: 1
MaskLayer. n: 5. total: 0. avg: 0. range: [0..0], worst: 1
DrawNoMap. n: 20. total: 134. avg: 6. range: [1..24], worst: 1
RefreshCaretPlane. n: 5. total: 45. avg: 9. range: [8..11], worst: 1
RefreshCPFeedback. n: 5. total: 0. avg: 0. range: [0..0], worst: 1
RefreshOverlay. n: 5. total: 1. avg: 0. range: [0..0], worst: 3
RefreshBackground. n: 5. total: 13. avg: 2. range: [1..8], worst: 3
LayerWhite. n: 5. total: 18. avg: 3. range: [1..7], worst: 1
MultiMap. n: 5. total: 1. avg: 0. range: [0..0], worst: 2
SawTextFinish. n: 5. total: 0. avg: 0. range: [0..0], worst: 1

(2) Caret and Alignments
HandleGuarded. n: 15. total: 2464. avg: 164. range: [0..282], worst: 6
EndCaretPos. n: 5. total: 1263. avg: 252. range: [234..282], worst: 2
RestoreScreenAndInvariants. n: 5. total: 1091. avg: 218. range: [201..250], worst: 2
PaintViewer. n: 5. total: 1089. avg: 217. range: [201..249], worst: 2
DoWithBuffer. n: 5. total: 1056. avg: 211. range: [196..243], worst: 2
MaskLayer. n: 5. total: 96. avg: 19. range: [16..23], worst: 2
DrawNoMap. n: 20. total: 344. avg: 17. range: [1..46], worst: 8
RefreshCaretPlane. n: 5. total: 102. avg: 20. range: [13..38], worst: 2
RefreshCPFeedback. n: 5. total: 1. avg: 0. range: [0..0], worst: 5
RefreshOverlay. n: 5. total: 1. avg: 0. range: [0..0], worst: 2
RefreshBackground. n: 5. total: 6. avg: 1. range: [1..1], worst: 5
LayerWhite. n: 5. total: 181. avg: 36. range: [34..38], worst: 4
MultiMap. n: 5. total: 1. avg: 0. range: [0..0], worst: 2
StartCaretPos. n: 5. total: 1194. avg: 238. range: [228..257], worst: 3
DuringCaretPos. n: 5. total: 1182. avg: 236. range: [226..253], worst: 3
RestoreScreenAndInvariants. n: 5. total: 1040. avg: 208. range: [200..228], worst: 3
PaintViewer. n: 5. total: 1037. avg: 207. range: [199..228], worst: 3
DoWithBuffer. n: 5. total: 1012. avg: 202. range: [194..223], worst: 3
MaskLayer. n: 5. total: 80. avg: 16. range: [15..16], worst: 5
DrawNoMap. n: 20. total: 328. avg: 16. range: [1..57], worst: 9
RefreshCaretPlane. n: 5. total: 70. avg: 14. range: [13..14], worst: 2
RefreshCPFeedback. n: 5. total: 1. avg: 0. range: [0..0], worst: 3
RefreshOverlay. n: 5. total: 1. avg: 0. range: [0..0], worst: 1
RefreshBackground. n: 5. total: 7. avg: 1. range: [1..2], worst: 5
LayerWhite. n: 5. total: 207. avg: 41. range: [34..53], worst: 3
MultiMap. n: 5. total: 0. avg: 0. range: [0..0], worst: 3
SawTextFinish. n: 5. total: 0. avg: 0. range: [0..0], worst: 1

(3) Interactive Translation
HandleGuarded. n: 15. total: 3785. avg: 252. range: [0..447], worst: 13
EndMotion. n: 5. total: 1918. avg: 383. range: [361..417], worst: 3
RestoreScreenAndInvariants. n: 5. total: 1782. avg: 356. range: [347..360], worst: 4
PaintViewer. n: 5. total: 1491. avg: 298. range: [290..315], worst: 5
DoWithBuffer. n: 5. total: 1450. avg: 290. range: [284..298], worst: 5
MaskLayer. n: 5. total: 0. avg: 0. range: [0..0], worst: 5
DrawNoMap. n: 20. total: 859. avg: 42. range: [2..154], worst: 17
RefreshCaretPlane. n: 5. total: 41. avg: 8. range: [7..11], worst: 4
RefreshCPFeedback. n: 5. total: 31. avg: 6. range: [5..10], worst: 4
RefreshOverlay. n: 5. total: 1. avg: 0. range: [0..0], worst: 1
RefreshBackground. n: 5. total: 555. avg: 111. range: [108..116], worst: 5
LayerWhite. n: 5. total: 187. avg: 37. range: [35..39], worst: 1
RepairBackgroundInBoundBox. n: 5. total: 0. avg: 0. range: [0..0], worst: 5
DynamicToStaticBags. n: 5. total: 1. avg: 0. range: [0..0], worst: 3
DuringDrag. n: 5. total: 1701. avg: 340. range: [310..407], worst: 5
RestoreScreenAndInvariants. n: 5. total: 1554. avg: 310. range: [286..361], worst: 5
PaintViewer. n: 5. total: 1551. avg: 310. range: [285..361], worst: 5
DoWithBuffer. n: 5. total: 1512. avg: 302. range: [281..351], worst: 5
MaskLayer. n: 5. total: 0. avg: 0. range: [0..0], worst: 1
DrawNoMap. n: 20. total: 889. avg: 44. range: [2..163], worst: 17
RefreshCaretPlane. n: 5. total: 43. avg: 8. range: [7..11], worst: 4
RefreshCPFeedback. n: 5. total: 1. avg: 0. range: [0..0], worst: 4
RefreshOverlay. n: 5. total: 112. avg: 22. range: [20..29], worst: 5
RefreshBackground. n: 5. total: 486. avg: 97. range: [88..125], worst: 5
LayerWhite. n: 5. total: 183. avg: 36. range: [34..38], worst: 2
MultiMap. n: 5. total: 1. avg: 0. range: [0..0], worst: 5
StartDrag. n: 5. total: 155. avg: 31. range: [12..47], worst: 4
StartMotion. n: 5. total: 153. avg: 30. range: [12..47], worst: 4
StaticToDynamicBags. n: 5. total: 22. avg: 4. range: [2..9], worst: 5
RepairBackgroundInBoundBox. n: 5. total: 1. avg: 0. range: [0..0], worst: 5
SawTextFinish. n: 5. total: 0. avg: 0. range: [0..0], worst: 5
Finished playback of /net/gharlane/cree/gargoyle/RefreshTest.script in time (00:00:19)
5) Play RefreshEightSquares.script. Record PaintEntireScene time.
March 8, 1990, Bier, Pippin. Michael Plass claims there is a known bug with rectangle refresh. Pippin was not particularly fresh (early results were 1600 ms).
PaintEntireScene. starts: 3. total: 5222. avg: 1740. min: 1630. max: 1956, index: 3
March Sometime, Bier, Pippin. With Michael's Faster dither context.
PaintEntireScene. average was about: 1000
April 16, 1990, Bier, Pippin. With Frank Crow's GX accelerators.
PaintEntireScene. n: 3. total: 829. avg: 276. range: [272..282], worst: 1
6) Load GridCircles.gargoyle. Select the lower right hand circle. Change its color. Record the RestoreScreenAndInvariants statistics:
September 5, 1990, Bier, Arpeggio, SS1+, SunOS4.0.3. Released Imager and FP package.
RestoreScreenAndInvariants. n: 1. total: 12815. avg: 12815. range: [12815..12815], worst: 1
PaintViewer. n: 1. total: 12773. avg: 12773. range: [12773..12773], worst: 1
NoBuffer. n: 1. total: 6155. avg: 6155. range: [6155..6155], worst: 1
DrawIgnoreMap. n: 5. total: 6149. avg: 1229. range: [5..6070], worst: 1
RefreshCaretPlane. n: 1. total: 35. avg: 35. range: [35..35], worst: 1
RefreshForeground. n: 1. total: 3. avg: 3. range: [3..3], worst: 1
RefreshCPFeedback. n: 1. total: 21. avg: 21. range: [21..21], worst: 1
RefreshOverlay. n: 1. total: 3. avg: 3. range: [3..3], worst: 1
RefreshBackground. n: 1. total: 6055. avg: 6055. range: [6055..6055], worst: 1
LayerWhite. n: 1. total: 5. avg: 5. range: [5..5], worst: 1
RepairBackgroundInBoundBox. n: 1. total: 6579. avg: 6579. range: [6579..6579], worst: 1
RawInputNotify. n: 1. total: 7. avg: 7. range: [7..7], worst: 1
RestoreScreenAndInvariants. n: 1. total: 12413. avg: 12413. range: [12413..12413], worst: 1
PaintViewer. n: 1. total: 12377. avg: 12377. range: [12377..12377], worst: 1
NoBuffer. n: 1. total: 5979. avg: 5979. range: [5979..5979], worst: 1
DrawIgnoreMap. n: 5. total: 5974. avg: 1194. range: [6..5891], worst: 1
RefreshCaretPlane. n: 1. total: 38. avg: 38. range: [38..38], worst: 1
RefreshForeground. n: 1. total: 3. avg: 3. range: [3..3], worst: 1
RefreshCPFeedback. n: 1. total: 23. avg: 23. range: [23..23], worst: 1
RefreshOverlay. n: 1. total: 4. avg: 4. range: [4..4], worst: 1
RefreshBackground. n: 1. total: 5877. avg: 5877. range: [5877..5877], worst: 1
LayerWhite. n: 1. total: 4. avg: 4. range: [4..4], worst: 1
RepairBackgroundInBoundBox. n: 1. total: 6370. avg: 6370. range: [6370..6370], worst: 1
September 6, 1990, Pier, Pierrot, SS1, SunOS4.1.0. Imager and FP recompiled with "f" switch
RestoreScreenAndInvariants. n: 1. total: 9871. avg: 9871. range: [9871..9871], worst: 1
PaintViewer. n: 1. total: 9867. avg: 9867. range: [9867..9867], worst: 1
NoBuffer. n: 1. total: 4793. avg: 4793. range: [4793..4793], worst: 1
DrawIgnoreMap. n: 5. total: 4791. avg: 958. range: [3..4759], worst: 1
RefreshCaretPlane. n: 1. total: 7. avg: 7. range: [7..7], worst: 1
RefreshForeground. n: 1. total: 0. avg: 0. range: [0..0], worst: 1
RefreshCPFeedback. n: 1. total: 12. avg: 12. range: [12..12], worst: 1
RefreshOverlay. n: 1. total: 1. avg: 1. range: [1..1], worst: 1
RefreshBackground. n: 1. total: 4756. avg: 4756. range: [4756..4756], worst: 1
LayerWhite. n: 1. total: 1. avg: 1. range: [1..1], worst: 1
RepairBackgroundInBoundBox. n: 1. total: 5068. avg: 5068. range: [5068..5068], worst: 1
RestoreScreenAndInvariants. n: 1. total: 4710. avg: 4710. range: [4710..4710], worst: 1
PaintViewer. n: 1. total: 4679. avg: 4679. range: [4679..4679], worst: 1
NoBuffer. n: 1. total: 4672. avg: 4672. range: [4672..4672], worst: 1
DrawIgnoreMap. n: 5. total: 4670. avg: 934. range: [2..4643], worst: 1
RefreshCaretPlane. n: 1. total: 7. avg: 7. range: [7..7], worst: 1
RefreshForeground. n: 1. total: 0. avg: 0. range: [0..0], worst: 1
RefreshCPFeedback. n: 1. total: 10. avg: 10. range: [10..10], worst: 1
RefreshOverlay. n: 1. total: 1. avg: 1. range: [1..1], worst: 1
RefreshBackground. n: 1. total: 4640. avg: 4640. range: [4640..4640], worst: 1
LayerWhite. n: 1. total: 0. avg: 0. range: [0..0], worst: 1
RepairBackgroundInBoundBox. n: 1. total: 0. avg: 0. range: [0..0], worst: 1
September 6, 1990, Pier, Pierrot, SS1, SunOS4.1.0. Released Imager and FP without "f" switch
RestoreScreenAndInvariants. n: 1. total: 8447. avg: 8447. range: [8447..8447], worst: 1
PaintViewer. n: 1. total: 8429. avg: 8429. range: [8429..8429], worst: 1
NoBuffer. n: 1. total: 8423. avg: 8423. range: [8423..8423], worst: 1
DrawIgnoreMap. n: 5. total: 8422. avg: 1684. range: [2..8391], worst: 1
RefreshCaretPlane. n: 1. total: 10. avg: 10. range: [10..10], worst: 1
RefreshForeground. n: 1. total: 0. avg: 0. range: [0..0], worst: 1
RefreshCPFeedback. n: 1. total: 10. avg: 10. range: [10..10], worst: 1
RefreshOverlay. n: 1. total: 1. avg: 1. range: [1..1], worst: 1
RefreshBackground. n: 1. total: 8388. avg: 8388. range: [8388..8388], worst: 1
LayerWhite. n: 1. total: 0. avg: 0. range: [0..0], worst: 1
RepairBackgroundInBoundBox. n: 1. total: 0. avg: 0. range: [0..0], worst: 1
RestoreScreenAndInvariants. n: 1. total: 7628. avg: 7628. range: [7628..7628], worst: 1
PaintViewer. n: 1. total: 7598. avg: 7598. range: [7598..7598], worst: 1
NoBuffer. n: 1. total: 7592. avg: 7592. range: [7592..7592], worst: 1
DrawIgnoreMap. n: 5. total: 7591. avg: 1518. range: [2..7554], worst: 1
RefreshCaretPlane. n: 1. total: 13. avg: 13. range: [13..13], worst: 1
RefreshForeground. n: 1. total: 0. avg: 0. range: [0..0], worst: 1
RefreshCPFeedback. n: 1. total: 12. avg: 12. range: [12..12], worst: 1
RefreshOverlay. n: 1. total: 1. avg: 1. range: [1..1], worst: 1
RefreshBackground. n: 1. total: 7550. avg: 7550. range: [7550..7550], worst: 1
LayerWhite. n: 1. total: 0. avg: 0. range: [0..0], worst: 1
RepairBackgroundInBoundBox. n: 1. total: 0. avg: 0. range: [0..0], worst: 1
Refresh of Alignment Lines
1) Bad benchmark. It would be better to time GGAlignImpl.DrawFeatureList. Playback BuiltInFilters.script. Record the time it takes to finish the playback.
14.8 seconds, January 14, 1987, Pier, Independence
7 seconds, January 14, 1987, Bier, Queenfish
10 seconds, Cedar 7.0, March 3, 1987, Bier, Queenfish
10 seconds, March 11, 1987, Bier, Queenfish
11 seconds, March 24, 1987, Bier, Queenfish. Using FunctionCache for lines is probably slowing it down a bit. It will be better when we use a hash table instead of FunctionCache.
11 seconds, March 24, 1987, Pier, Independence.
9 seconds, November 2, 1989, Bier, Queenfish
9 seconds, November 2, 1989, Bier, Queenfish
22 seconds, April 18, 1990, Bier, Pippin.
Hit Testing Performance improvements
October 15, 1986 6:55:57 pm PDT, Pier, Independence
MergeIPEditable the first page of GGRefreshImpl.interpress, made via
% TiogaToInterpress GGRefreshImpl.mesa
order of 100 text strings in picture.
Procedure: Typescript; ResetStats; TestGravity; PerformanceStatistics
Gargoyle of 08-Oct-86 17:35:37 PDT
Tested 125 total points. 57 unihits. 57 multihits. 0 differences
SetBagsForAction. starts: 1. total: 37. avg: 37. min: 37. max: 37, index: 1, overflows: 0
MultiMap. starts: 125. total: 97755. avg: 782. min: 526. max: 986, index: 99, overflows: 0
UniMap. starts: 125. total: 97537. avg: 780. min: 516. max: 937, index: 118, overflows: 0
AFTER BOUNDING BOX HIT TESTING ADDED TO SLICES!
Gargoyle of October 15, 1986 6:20:05 pm PDT
Tested 1001 total points. 558 unihits. 558 multihits. 0 differences
SetBagsForAction. starts: 1. total: 39. avg: 39. min: 39. max: 39, index: 1, overflows: 0
MultiMap. starts: 1001. total: 32968. avg: 32. min: 19. max: 149, index: 712, overflows: 0
UniMap. starts: 1001. total: 28580. avg: 28. min: 16. max: 120, index: 309, overflows: 0
Gargoyle of January 14, 1988 1:26:14 pm PST
Tested 400 total points. 217 multihits
MultiMap. starts: 400. total: 25785. avg: 64. min: 40. max: 206, index: 175. Probably due to normal calculations.
SetBagsForAction starts: 0
Get Performance
1) Create Typescript. Get HackerHouse.gargoyle. Restore. Record the time it takes.
28 seconds, November 26, 1986, Bier, Queenfish.
22 seconds, November 26, 1986, Bier, Queenfish. After preallocating some RIS and TIS streams for GGParseIn.ReadReal and GGParseIn.ReadColor.
23 seconds, January 13, 1987, Bier, Queenfish
22 seconds, January 13, 1987, Bier, Queenfish. After optimizing line segment colors.
18 seconds, January 19, 1987, Bier, Queenfish. After using Convert.RealFromRope.
19 seconds, January 27, 1987, Bier, Queenfish. After adding CMY color info and making TRUE => T.
24 seconds, May 14, 1987, Bier, Queenfish. Outlines are slices.
22 seconds, May 14, 1987 1:02:30 pm PDT, Bier, Queenfish. Shorter Slice headers.
20 seconds, March 13, 1988, Bier, Queenfish. Routine benchmark.
19 seconds, March 13, 1988, Bier, Queenfish. After putting in code to build the TiogaButtons all at once. (This time is for a new version of HackerHouse, dated March 13).
March 14, 1988, Bier, QueenFish
17 seconds. After tuning ReadBlank and ReadReal a bit.
ReadOptions. starts: 1. total: 573. avg: 573.
Restore. starts: 1. total: 30242. avg: 30242.
November 2, 1989, Bier, QueenFish
18 seconds.
ReadOptions. starts: 1. total: 733. avg: 733.
April 18, 1990, Bier, Pippin
22 seconds (some font substitutions)
ReadOptions. n: 1. total: 546.
March 18, 1992, bier, duet (open /net/lane/kipling/gargoyle/HackerHouse.gargoyle)
17 seconds (first load)
9 seconds (second load)
8 seconds (third load, codetimeron)
0.ReadOptions. n: 1. total: 4501.
8 seconds (fourth load, codetimeron)
0.ReadOptions. n: 1. total: 4122.
May 21, 1992, bier. duet. optimized code. After Ken's work on bounding boxes.
18 seconds (first load)
11 seconds (second load)
8 seconds (third load)
May 21, 1992, bier, duet. Unoptimized. After adding AlignmentsVisible routine.
12 seconds (first load)
10 seconds (second load)
9 seconds (third load)
May 26, 1992, bier. duet. Optimized.
9 seconds
17 seconds (second load, garbage collect?)
8 seconds (third load)
7 seconds (fourth load)
2) Create Typescript. Get Christmas86.gargoyle. Restore. Record the time it takes.
24 seconds. Bier, January 13, 1987, Queenfish
19 seconds, Bier, January 13, 1987, Queenfish. After grouping segment widths and colors.
17 seconds, Bier, January 19, 1987, Queenfish. After using Convert.RealFromRope.
19 seconds, Bier, March 11, 1987, Queenfish. Cedar7.0.
15 seconds, March 13, 1988, Queenfish. Building TiogaButtons all at once.
3) Create Typescript. Get Halftones.gargoyle. Restore. Record the time it takes.
43 seconds. Bier, January 13, 1987, Queenfish.
35 seconds. Bier, January 13, 1987, Queenfish. After grouping segment widths and colors.
30 seconds. Bier, January 19, 1987, Queenfish. After using Convert.RealFromRope.
30 seconds. Bier, January 27, 1987, Queenfish. After adding CMY color info and making TRUE => T.
31 seconds. March 11, 1987, Bier, Queenfish. Cedar7.0.
26 seconds. November 2, 1989. Bier, (Queenfish has more memory)
12 seconds. April 18, 1990, Bier, Pippin.
12 seconds (first), bier, duet, May 26, 1992
16 seconds (second), bier, duet, May 26, 1992
10 seconds (third), bier, duet, May 26, 1992
4) Create Typescript. Get DenverBroncos.gargoyle. Restore. Record the time it takes. DenverBroncos contains lots of natural splines.
31 seconds. Bier, January 19, 1987, Queenfish
22 seconds. Bier, January 19, 1987, Queenfish. After seeing to it that open Natural splines compute their bounding box only once when they are created.
21 seconds. Bier, January 19, 1987, Queenfish.
22 seconds. Bier, January 27, 1987, Queenfish.
10 seconds. Bier, November 2, 1989, Queenfish.
5 seconds. Bier, April 18, 1990, Pippin
3 seconds, bier, duet, May 26, 1992.
4 seconds, bier, duet, May 26, 1992.
3 seconds, bier, duet, May 26, 1992.
5) (Obsolete. IP files missing.) Create Typescript. Get Montage.gargoyle. Restore. Record the time it takes. Montage contains lots of IP slices.
1:39. Bier, January 26, 1987, Queenfish.
1:25. Bier, January 27, 1987, Queenfish
83 seconds. Bier, January 28, 1987, Queenfish
27 seconds. Bier, January 28, 1987, Queenfish. After storing the IP master bounding boxes in the GG file.
6) Create Typescript. Get windowhacker.gargoyle. Restore. Record the time it takes. windowhacker is relatively small, testing for overhead that is always present.
March 14, 1988, Bier, Queenfish
6-7 seconds.
March 14, 1988, Bier, Queenfish. Building TiogaButtons all at once.
4-5 seconds.
March 14, 1988, Bier, Queenfish.
ReadOptions. starts: 1. total: 427. avg: 427. min: 427. max: 427, index: 1
Restore. starts: 1. total: 8755. avg: 8755. min: 8755. max: 8755, index: 1
March 14, 1988, Bier, Queenfish. Tuning ReadReal and ReadBlank a bit:
ReadOptions. starts: 1. total: 420. avg: 420. min: 420. max: 420, index: 1
Restore. starts: 1. total: 8374. avg: 8374. min: 8374. max: 8374, index: 1
ReadOptions. starts: 1. total: 420. avg: 420. min: 420. max: 420, index: 1,
Restore. starts: 1. total: 8450. avg: 8450. min: 8450. max: 8450, index: 1
April 18, 1990, Bier, Pippin
ReadOptions. n: 1. total: 590. avg: 590. range: [590..590], worst: 1
Restore. n: 1. total: 5864. avg: 5864. range: [5864..5864], worst: 1
7) Getting text. Get /PCedar2.0/Forms/FirstPublicationRelease-1.gargoyle. Record the time it takes.
March 17, 1992. Bier, duet, stale world, first load, font cache on
Done in time (00:00:48)
March 17, 1992. Bier, duet, stale world, second load, font cache on
Done in time (00:00:06)
March 17, 1992. Bier, duet, stale world, third load, font cache on
Done in time (00:00:04)
March 18, 1992, bier, duet, fresh world, first load, font cache OFF
Done in time (00:01:10)
March 18, 1992, bier, duet, fresh world, second load, font cache OFF
Done in time (00:00:57)
March 18, 1992, bier, duet, fresh world, third load, font cache OFF
Done in time (00:00:52)
March 18, 1992, bier, duet, fresh world, fourth load, font cache OFF
Done in time (00:00:44)
March 18, 1992, bier, duet, fresh world, fifth load, font cache OFF
Done in time (00:00:51)
March 18, 1992, bier, duet, fresh world, first load, font cache ON
Done in time (00:00:07)
March 18, 1992, bier, duet, fresh world, second load, font cache ON
Done in time (00:00:05)
March 18, 1992, bier, duet, fresh world, third load, font cache ON
Done in time (00:00:05)
March 18, 1992, bier, duet, freshish world, initial load, font cache ON
Done in time (00:00:41)
March 19, 1992, bier, duet, fresh world, initial load, lazy evaluation, unoptimized
Done in time (00:00:33)
March 19, 1992, bier, duet, fresh world, second load, lazy evaluation, unoptimized
Done in time (00:00:07)
May 26, 1992, bier, duet. initial load. 25 seconds.
May 26, 1992, bier, duet. second load. 5 seconds.
8) Getting screen text. Get /CedarCommon2.0/FamousFiles/GargoyleControlPanel.gargoyle. Record the time it takes.
March 17, 1992, bier, duet, stale world, first load, font cache on
Done in time (00:00:12)
March 17, 1992, bier, duet, stale world, second load, font cache on
Done in time (00:00:08)
March 17, 1992, bier, duet, stale world, third load, font cache on
Done in time (00:00:07)
March 19, 1992, bier, duet, fresh world, initial load, lazy evaluation, unoptimized
Done in time (00:00:09)
File Size
1) hackerhouse.gargoyle. Use ls to find out.
HackerHouse.gargoyle!1 66614 29-Oct-86 21:39:40 PST
hackerhouse.gargoyle!2 63990 13-Jan-87 23:12:48 PST
After factoring out stroke widths and colors.
HackerHouse.gargoyle!9 65826 26-Jan-87 19:39:14 PST
After adding dashed strokes, changing TRUE to T, and encoding CMY vs black toner in all colors.
hackerhouse.gargoyle!2 72805 14-May-87 12:04:36 PDT
After outlines become slices, so Outline: is replaced by Slice (class: Outline). 8 characters => 22. An 11% increase in file size overall.
HackerHouse.gargoyle!3 68815 14-May-87 13:00:34 PDT
After making the slice headers shorter. The extra 3000 bytes over 26-Jan-87 is for the stroke end information on trajectories.
HackerHouse.gargoyle!4 68636 14-May-87 13:27:38 PDT
Getting rid of extra carriage returns.
HackerHouse.gargoyle!5 75596 13-Mar-88 23:41:58 PST
Outlines and Trajs are slices. Orientation. Named Colors.
2) Christmas86.gargoyle.
Christmas86.gargoyle!1 44994 17-Dec-86 11:25:11 PST
Christmas86.gargoyle!2 39598 13-Jan-87 23:15:50 PST
3) Halftones.gargoyle.
Halftones.gargoyle!1 110282 07-Nov-86 15:16:59 PST
Halftones.gargoyle!2 93547 13-Jan-87 23:28:11 PST, after grouping widths and colors.
Halftones.gargoyle!3 91841 26-Jan-87 20:05:38 PST, after adding dashed strokes, changing TRUE to T, and encoding CMY vs black toner in all colors.
Halftones.gargoyle!3 99107 02-Nov-89 15:03:32 PST