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.
Gravity Performance
1) Load arcbench.gargoyle. Run Gravity Test in the Debug Menu
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
2) Load windowhacker.gargoyle. Run Gravity Test in the Debug Menu.
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 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
3) Load TrajAlignTest.gargoyle. Make all hot. Turn on 0 and 30 degree slope lines. Turn on 1 inch circles. Run Gravity Test in the Debug Menu.
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
Bier, January 5, 1987. Queenfish. With precomputed alignment intersections, on-the-fly traj intersections.
4) Load windowhacker.gargoyle. Run Gravity Test in the Debug Menu.
Multi Gravity (with n = 5):
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, October 1, 1986, Bier, Independence
5) Load hacker.gargoyle. Run Gravity Test in the Debug Menu.
Base Case:
Map. started: 1001. total: 207209. avg: 207. min: 152. max: 937, index: 1001
Caching BoundBoxes:
Map. started: 1001. total: 42646. avg: 42. min: 10. max: 277, June 20, 1986, Bier
Map. started: 1001. total: 52855. avg: 52. min: 36. max: 231, June 30, 1986, Bier, Langley
6) Playback BezierHitTest.script. Record the CurveClosestPoint line in the Typescript.
CurveClosestPoint. starts: 46. total: 25588. avg: 556. min: 242. max: 950, index: 20,
Bier, December 2, 1986
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. Bier, December 2, 1986
CurveClosestPoint. starts: 41. total: 1671. avg: 40. min: 6. max: 151, index: 1. -- finding only the roots in [0..1], Bier, December 2, 1986
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. Bier, December 29, 1986
CurveClosestPoint. starts: 41. total: 899. avg: 21. min: 2. max: 67, index: 17, Bier, January 19, 1987, Queenfish
7) 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.
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 2, 1986?
CurveClosestPoint. starts: 28. total: 2545. avg: 90. min: 18. max: 231, index: 18 -- using subdivision with tolerance = 1 pixel. Bier, December 29, 1986. 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, Bier, January 19, 1987, Queenfish
8) Caret speed for these bags. Use KnotchedGrid.script. Record both MultiMap times.
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
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
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: 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
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: 1093. avg: 182. min: 86. max: 235, index: 3
Circles. MultiMap. starts: 6. total: 1018. avg: 169. min: 30. max: 625, index: 2
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: 427. avg: 71. min: 28. max: 198, index: 2
Circles. MultiMap. starts: 6. total: 882. avg: 147. min: 19. max: 587, index: 3
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: 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
These times are not very repeatable. All of the above 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: 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
Using a more careful test for line parallelism. No noticeable change. January 5, 1987, Bier, Queenfish.
Text Performance
June 20, 1986 5:08:11 pm PDT
1) Load teddy.gargoyle. Type the words "Now is the time for all" in the middle of the bear.
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
2) 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
Adding Performance
1) 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)
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.
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
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
5) 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.
Caret Positioning Performance
June 24, 1986 4:20:57 pm PDT, Bier, BunkerHill
1) Playback IntersectionTest1.script. Record the StartCaretPos line.
StartCaretPos. starts: 16. total: 2845. avg: 177. min: 162. max: 207, November 6, 1986, Bier, QueenFish
StartCaretPos. starts: 16. total: 2730. avg: 170. min: 140. max: 302, 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: 3040. avg: 190. min: 154. max: 242, index: 7, November 26, 1986, Bier, QueenFish (Object-oriented outlines).
StartCaretPos. starts: 16. total: 1797. avg: 112. min: 95. max: 206, index: 7, December 29, 1986, Bier, QueenFish. Less feedback during caret motion.
StartCaretPos. starts: 16. total: 1975. avg: 123. min: 86. max: 223, index: 7, January 5, 1987, Bier, QueenFish
2) Playback IntersectionTest2.script. Record the DuringCaretPos and EndCaretPos times.
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
January 7, 1987, Bier, Queenfish
3) 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. Record the SelectAll line from (Debug, Performance).
SelectAll. starts: 1. total: 9144. avg: 9144. Bier, November 11, 1986, QueenFish
SelectAll. starts: 1. total: 8961. avg: 8961. Bier, December 17, 1986, QueenFish
SelectAll. starts: 1. total: 7805. avg: 7805. Bier, December 29, 1986, QueenFish. After simplifying the Selection feedback so it doesn't paint anything twice.
SelectAll. starts: 1. total: 5454. avg: 5454. Bier, January 7, 1987, QueenFish. After speeding up joint generators.
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.
Lines, BuiltInFilters. starts: 1. total: 458. avg: 458. Bier, December 29, 1986, QueenFish
Circles, BuiltInFilters. starts: 1. total: 361. avg: 361. Bier, December 29, 1986, QueenFish
Lines, BuiltInFilters. starts: 1. total: 1240. avg: 1240
Circles, BuiltInFilters. starts: 1. total: 403. avg: 403 These times seem to be very sensitive to garbage collection. Bier, December 29, 1986, Queenfish.
Lines, BuiltInFilters. starts: 1. total: 1363. avg: 1363
Circles, BuiltInFilters. starts: 1. total: 388. avg: 388.
Lines, BuiltInFilters. starts: 1. total: 923. avg: 923.
Circles, BuiltInFilters. starts: 1. total: 979. avg: 979. Bier, January 5, 1987, Queenfish
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. January 5, 1987, Bier, Queenfish
This suggests that garbage collection makes about a 500 msec difference.
Refresh Time
1) Refresh! (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
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.
Refresh of Alignment Lines
1) 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
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
Loading .gargoyle Files
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.
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.
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.
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.
5) 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.
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.
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.