@asheepcalledgeorge wrote:
Hi Ekinsb,
Apologies for the delayed reply, have been away. Thanks for letting me know about the issue - is there a place to track updates / issues so that I can listen out for progress?
In the meantime I'll try and spot a pattern and tidy up the rest of the app. When running the work from a UI context (i.e. pressing a button to trigger it, rather than running the script) this bar flashes up and takes a VERY long time to complete.
By comparison, running the test case directly works just fine - even on the same data. Is there something I need to do in order to deffer the computation? I tried the following, but it prevented the sketches from copying and did not prevent the bar.
sketch.isComputeDeferred = False
Thanks
+1 - there's even a difference between preview and execute where preview is ~20% FASTER then when running the SAME CODE under execute
Here's some numbers from drawing the same sketch geometry in 3 contexts
A1 - add-in execute) 5.355388002004474
A2 - add-in preview) 3.9028928352236107
A3 - naked script run) 3.644889983235771
Here's numbers for the same type of sketch geometry but with exactly 5x more curves/lines:
B1 - add-in execute) 58.428408390814184
B2 - add-in preview) 51.400505475693535
B3 - naked script run) 50.852509769802964
Here's the draw timings for every curve/line drawn for the B1 case above - you can clearly see how bad performance gets by the end of this execution. I've tired pre-drawing all points then passing sketch points to the draw functions but this had no impact on render time (except the added time of drawing the points - which was actually remarkably slow too). I tried setting all those pre-drawn points as isFixed but apparently setting isFixed on points is a SLOW operation and increased point draw time by about 4-5x.
I'd put this in a collapsible section... but i dont see the option to make such a thing 😞
The pattern is spline, arc, spline, arc - repeat - all drawn shapes are connected and the first point of any shape is the endSketchPoint of the previous. None of these shapes cross any of the others - (it's actually the trace of a 100 tooth gear).
draw start point: 0.0013260013256513048
draw spline: 0.007337285532230453
draw arc...: 0.0018793327071762178
draw spline: 0.008206429258279968
draw arc...: 0.004198515476673492
draw spline: 0.009308693518505606
draw arc...: 0.00539050914994732
draw spline: 0.010636454246196081
draw arc...: 0.006528547882226121
draw spline: 0.011834312585961015
draw arc...: 0.001901031975648948
draw spline: 0.013129231174389133
draw arc...: 0.008919866062569781
draw spline: 0.014609473256314232
draw arc...: 0.010615634675559704
draw spline: 0.016041038597904844
draw arc...: 0.011594447684728948
draw spline: 0.026402146702821483
draw arc...: 0.013391968278483546
draw spline: 0.018043529321403184
draw arc...: 0.01341132168272452
draw spline: 0.018746702957287198
draw arc...: 0.014458751300480799
draw spline: 0.02052516338244459
draw arc...: 0.016194106419789023
draw spline: 0.021735923992309836
draw arc...: 0.01757640855430509
draw spline: 0.02292615826445399
draw arc...: 0.018386905604529602
draw spline: 0.0235736175582133
draw arc...: 0.019295635836897418
draw spline: 0.02494389712501288
draw arc...: 0.028131637154729106
draw spline: 0.05189439023979503
draw arc...: 0.0433393064977281
draw spline: 0.05041444139169471
draw arc...: 0.04449933773230441
draw spline: 0.04933622226872103
draw arc...: 0.045895421834757144
draw spline: 0.051120840594194306
draw arc...: 0.04783457415032899
draw spline: 0.05301894023705245
draw arc...: 0.04715720505191712
draw spline: 0.053374925555544905
draw arc...: 0.04859874032808875
draw spline: 0.05523519809321442
draw arc...: 0.05942345040057262
draw spline: 0.05728812495726743
draw arc...: 0.049946440924031776
draw spline: 0.05945570607218542
draw arc...: 0.05183984883205994
draw spline: 0.05714385413648415
draw arc...: 0.05390567796530377
draw spline: 0.061927663431561086
draw arc...: 0.054498595852237486
draw spline: 0.06273933341617521
draw arc...: 0.056712507840529724
draw spline: 0.06313725110703672
draw arc...: 0.057247072284553724
draw spline: 0.05331510594714928
draw arc...: 0.048871154133848904
draw spline: 0.054197151941480115
draw arc...: 0.04939369601106591
draw spline: 0.05680047785244824
draw arc...: 0.05196564595098607
draw spline: 0.05715880903790094
draw arc...: 0.05264301504848845
draw spline: 0.06953912217068137
draw arc...: 0.052310781633423176
draw spline: 0.05859535934723681
draw arc...: 0.054337903962732526
draw spline: 0.06054594776378508
draw arc...: 0.055611123280868924
draw spline: 0.061647918791095435
draw arc...: 0.05745116271464212
draw spline: 0.06323841662197083
draw arc...: 0.059775037218969373
draw spline: 0.06684606684666505
draw arc...: 0.05916188622995833
draw spline: 0.06638246487909782
draw arc...: 0.061172880721642287
draw spline: 0.06814127866709896
draw arc...: 0.06129809137291886
draw spline: 0.07563016585572768
draw arc...: 0.06389584585122066
draw spline: 0.0703478598215952
draw arc...: 0.06571946421536268
draw spline: 0.07069886017234239
draw arc...: 0.06362900347812683
draw spline: 0.0714727030517679
draw arc...: 0.06872393338562688
draw spline: 0.07480442066844262
draw arc...: 0.06807324852434249
draw spline: 0.07285999015402922
draw arc...: 0.06995551356430951
draw spline: 0.07820973986417812
draw arc...: 0.06935467837683973
draw spline: 0.08395975313305826
draw arc...: 0.07190346288098226
draw spline: 0.07769452882166661
draw arc...: 0.07203747053335974
draw spline: 0.08011722297396773
draw arc...: 0.07506627807379118
draw spline: 0.08267363154573104
draw arc...: 0.08098020879970136
draw spline: 0.08290851148012734
draw arc...: 0.07454520236478857
draw spline: 0.08075999053380656
draw arc...: 0.07651074568366312
draw spline: 0.08567340898207476
draw arc...: 0.08952209704057168
draw spline: 0.08495234811107366
draw arc...: 0.07903137978246377
draw spline: 0.08531097252944164
draw arc...: 0.08260589463588985
draw spline: 0.08992470646626316
draw arc...: 0.08394714409769222
draw spline: 0.08987837559288891
draw arc...: 0.08674869577134814
draw spline: 0.09138764777799224
draw arc...: 0.08486584426464105
draw spline: 0.10326125363735628
draw arc...: 0.08710732018971612
draw spline: 0.10484852590070659
draw arc...: 0.09238288185679266
draw spline: 0.110156929706136
draw arc...: 0.09463931268419401
draw spline: 0.11468621243056987
draw arc...: 0.09507740334811388
draw spline: 0.09880351985611924
draw arc...: 0.09504280180954083
draw spline: 0.10593026382503012
draw arc...: 0.11182161558099324
draw spline: 0.11244473650458531
draw arc...: 0.10341432145924045
draw spline: 0.11207936771825189
draw arc...: 0.10193935757888539
draw spline: 0.10351402080777916
draw arc...: 0.09966240041467245
draw spline: 0.10578100803650159
draw arc...: 0.09853550455045479
draw spline: 0.10708061835885019
draw arc...: 0.11140229185366479
draw spline: 0.106651617929856
draw arc...: 0.10229065116345737
draw spline: 0.11136681061452691
draw arc...: 0.10317152422339859
draw spline: 0.10759260383292713
draw arc...: 0.10200416215411678
draw spline: 0.10914732719265885
draw arc...: 0.10696244530845433
draw spline: 0.12207188147021952
draw arc...: 0.10554818073615024
draw spline: 0.11323588015329733
draw arc...: 0.10736740060110606
draw spline: 0.11463372365597024
draw arc...: 0.11028419299054804
draw spline: 0.11654707143406995
draw arc...: 0.11265527806881437
draw spline: 0.12311198025508929
draw arc...: 0.12252111500220053
draw spline: 0.11703853057224478
draw arc...: 0.11491786679835059
draw spline: 0.12124173778283875
draw arc...: 0.11698428239742498
draw spline: 0.12192115951529559
draw arc...: 0.1165227330639027
draw spline: 0.12243871642385784
draw arc...: 0.11885804366920638
draw spline: 0.1358614742066493
draw arc...: 0.11936445771061699
draw spline: 0.12460160580394586
draw arc...: 0.12186485870734032
draw spline: 0.12640352489961515
draw arc...: 0.1214481740798874
draw spline: 0.1297847989571892
draw arc...: 0.12227391926626296
draw spline: 0.14028343351583317
draw arc...: 0.12298002523584728
draw spline: 0.13210280879502534
draw arc...: 0.12638710383089347
draw spline: 0.13117032665923034
draw arc...: 0.1261780284339693
draw spline: 0.13266523040965694
draw arc...: 0.13917647752168705
draw spline: 0.13274880192147975
draw arc...: 0.12799490243105538
draw spline: 0.13695846026712388
draw arc...: 0.1292059562738359
draw spline: 0.13451846534553624
draw arc...: 0.1304882658259885
draw spline: 0.13718483643333457
draw arc...: 0.1431260378631123
draw spline: 0.13808359673021187
draw arc...: 0.13372204349616368
draw spline: 0.13846714598639664
draw arc...: 0.13308162180419458
draw spline: 0.14089277247148857
draw arc...: 0.1382196570166343
draw spline: 0.1543331242583008
draw arc...: 0.1386354619435224
draw spline: 0.14371719634891633
draw arc...: 0.13809884486545343
draw spline: 0.14500625026903435
draw arc...: 0.13781088969062694
draw spline: 0.14604928138760442
draw arc...: 0.1503082029394136
draw spline: 0.14700023722616606
draw arc...: 0.13965034265766008
draw spline: 0.14671990611805086
draw arc...: 0.14128394579529413
draw spline: 0.14813651655822468
draw arc...: 0.14456434757175884
draw spline: 0.16563521826628858
draw arc...: 0.14470568605975132
draw spline: 0.15403461268124374
draw arc...: 0.14789049375576724
draw spline: 0.15364285289069812
draw arc...: 0.14993931535263982
draw spline: 0.1555682232374238
draw arc...: 0.16028986705623538
draw spline: 0.15643971283043356
draw arc...: 0.162815192889866
draw spline: 0.16675009156188025
draw arc...: 0.1611953717219876
draw spline: 0.16835642399564676
draw arc...: 0.17606318358230055
draw spline: 0.17083219338837807
draw arc...: 0.16221347800274089
draw spline: 0.16817608546989504
draw arc...: 0.1616833120588126
draw spline: 0.16964870348328986
draw arc...: 0.1634233589120413
draw spline: 0.1818043998491703
draw arc...: 0.16383417887209362
draw spline: 0.17107147182377958
draw arc...: 0.1639429684546485
draw spline: 0.17502161863103538
draw arc...: 0.16924022939019778
draw spline: 0.1867295476322397
draw arc...: 0.16916281577960035
draw spline: 0.17630891315093322
draw arc...: 0.170223734134197
draw spline: 0.17942334483632294
draw arc...: 0.17332907558466104
draw spline: 0.19040991973361088
draw arc...: 0.1747732499607082
draw spline: 0.17796480202468956
draw arc...: 0.17555970187549974
draw spline: 0.18289581447425007
draw arc...: 0.1765531765531705
draw spline: 0.19580424091691384
draw arc...: 0.17675785344999895
draw spline: 0.1841098006507309
draw arc...: 0.17855771991162328
draw spline: 0.1858589377388853
draw arc...: 0.19115737160791468
draw spline: 0.18629761486954521
draw arc...: 0.1799233077435929
draw spline: 0.18726909704309946
draw arc...: 0.183053867264789
draw spline: 0.1921247485161075
draw arc...: 0.1983377772858148
draw spline: 0.19079170958866598
draw arc...: 0.1837294769620712
draw spline: 0.1946034502425391
draw arc...: 0.18700108173743502
draw spline: 0.20675357517393422
draw arc...: 0.18767639820271143
draw spline: 0.19589338386322197
draw arc...: 0.18965718965682754
draw spline: 0.19856679255190102
draw arc...: 0.19063893499969709
draw spline: 0.2090666000440251
draw arc...: 0.19407738956579124
draw spline: 0.20559706273979828
draw arc...: 0.1948151647402483
draw spline: 0.20041328311981488
draw arc...: 0.20641987559338304
draw spline: 0.20027751606721722
draw arc...: 0.19704520456343744
draw spline: 0.20179235968680587
draw arc...: 0.19627957221928227
draw spline: 0.21630418622862635
draw arc...: 0.19617547437155736
draw spline: 0.2038227075818213
draw arc...: 0.1979750475993569
draw spline: 0.20466839263826841
draw arc...: 0.1998461697703533
draw spline: 0.21970100165526674
draw arc...: 0.20555894240078487
draw spline: 0.2084836520925819
draw arc...: 0.20374382780391898
draw spline: 0.20977123984630452
draw arc...: 0.21910632436993183
draw spline: 0.2105823233641786
draw arc...: 0.20741510967036447
draw spline: 0.2121534677917225
draw arc...: 0.20511733293733414
draw spline: 0.22709722709714697
draw arc...: 0.20720779367456998
draw spline: 0.21440843245363794
draw arc...: 0.20914547982192744
draw spline: 0.23129281024012016
draw arc...: 0.21159368527787592
draw spline: 0.21559808025995153
draw arc...: 0.21043717284283048
draw spline: 0.21559045619324024
draw arc...: 0.22413146473445522
draw spline: 0.21779791704648233
draw arc...: 0.21203852030885173
draw spline: 0.21875385785278922
draw arc...: 0.21385627400559315
draw spline: 0.23602413076150697
draw arc...: 0.21456062057586678
draw spline: 0.22065958156235865
draw arc...: 0.2161317650025012
draw spline: 0.22747315228480147
draw arc...: 0.2334524740545021
draw spline: 0.22508300703702844
draw arc...: 0.2199983402988437
draw spline: 0.22491996928147273
draw arc...: 0.23644345448883541
draw spline: 0.22830945387431711
draw arc...: 0.2221920191841491
draw spline: 0.22831033357397246
draw arc...: 0.22307259901208454
draw spline: 0.25065471681955387
draw arc...: 0.22283214764320292
draw spline: 0.2319238484651578
draw arc...: 0.22785963387468655
draw spline: 0.2454251927920268
draw arc...: 0.22593690262874588
draw spline: 0.2310500130060973
draw arc...: 0.22716672340720834
draw spline: 0.2359956871241593
draw arc...: 0.24249755076743895
draw spline: 0.2383617872328614
draw arc...: 0.23000844805392262
draw spline: 0.23735218472029374
draw arc...: 0.24702214175886184
draw spline: 0.23692640985973412
draw arc...: 0.230810441336871
draw spline: 0.2437229730476247
draw arc...: 0.23418526426212338
draw spline: 0.2549397361417505
draw arc...: 0.23403747463999025
draw spline: 0.23957430724294682
draw arc...: 0.2378386588916328
draw spline: 0.26099295272251766
draw arc...: 0.2431781454324664
draw spline: 0.2430564535825397
draw arc...: 0.24161697093950352
draw spline: 0.2621887584300566
draw arc...: 0.2396552396548941
draw spline: 0.24824375200296345
draw arc...: 0.24137593310479133
draw spline: 0.2648724302853225
draw arc...: 0.24208643757629034
draw spline: 0.24928590342096868
draw arc...: 0.24261455088526418
draw spline: 0.2711350154968386
draw arc...: 0.24534103481346392
draw spline: 0.25222175598173635
draw arc...: 0.24522491439711303
draw spline: 0.2541641338630143
draw arc...: 0.26458623451071617
draw spline: 0.2533589150134503
draw arc...: 0.2491929484422144
draw spline: 0.25444094616977964
draw arc...: 0.2662878677911067
draw spline: 0.255469608853673
draw arc...: 0.25337474961452244
draw spline: 0.2589259506567032
draw arc...: 0.27056467657894245
draw spline: 0.2612668326946732
draw arc...: 0.25393130656266294
draw spline: 0.2615239983661013
draw arc...: 0.27250441536125436
draw spline: 0.2626793378676666
draw arc...: 0.2618398107115354
draw spline: 0.27311844604992075
draw arc...: 0.27365887516316434
draw spline: 0.27043360126117477
draw arc...: 0.26074956901902624
draw spline: 0.2834352759164176
draw arc...: 0.2660526946256141
draw spline: 0.26603568708742387
draw arc...: 0.2637704592598311
draw spline: 0.2838082687703718
draw arc...: 0.2633731280348002
draw spline: 0.2671317934473336
draw arc...: 0.26515745312826766
draw spline: 0.28530933042384277
draw arc...: 0.2659617922781763
draw spline: 0.27325773190386826
draw arc...: 0.2672745981017215
draw spline: 0.29131885522838274
draw arc...: 0.26960726960714965
draw spline: 0.27626806574153306
draw arc...: 0.4639221782090317 <-- this arc closed the shape which explains the time spike here
And then to turn off compute differed: 0.001083204089809442
Or to put it into a picture (last arc spiked time not included)...
There were 400 shapes drawn, funny thing is if you take the first draw times of a given shape type and multiply it by 400... guess what - you get something dang close to the final draw times for that shape. Clearly there is a O(n) going on here where n is the number of shapes and the constant (on my computer) is around 0.9ms