Closed nilsdoehring closed 3 years ago
@nilsdoehring Thank you for the detailed submission. Can you please describe the shape of your spreadsheet as well? How many keys / sheets are on your spreadsheet during each of these parts?
@dbrody Sure! The spreadsheet is a single sheet with 60 versions (columns) at 26 keys (rows) each. Two of these keys are symbol type IDs, the remaining 24 are just plain text, no style. I can share if needed, but as stated in the description, the issue can be reproduced based on the simple sheet from the Getting Started example.
@nilsdoehring Another thing, can you provide the machine / OS / Sketch / ContentSync versions you are on? We are doing some testing and want to make sure we can compare accurately.
@dbrody sure:
@nilsdoehring Thank you. We have benchmarked the same behavior and are working on a few solutions.
@nilsdoehring We are working to address this issue.
An initial improvement has been released in our 8.4.0-alpha release. Please note that it is an alpha release so it has not gone under heavy stress testing. We'd love feedback as we work towards a production release of these improvements.
@dbrody I went through the scenarios described above, here's the updated benchmark:
This is awesome!
Some issues I've noticed:
Pull Full Design
doesn't work as expected.
Pull Full Design
just apply to the currently active page?Pull Selected Layers
sometimes (20%) crashes mid-operation; it seems always during the replacement phase, where the Sketch canvas gets refreshed several times to reflect changes. I can only assume that some asynchronous operations are ending up in a fight here.
2021-10-15 10:09:58.934 Sketch[24626:664561] ERROR LOADING ContentSyncRealtime in /Users/ndoehring/Library/Application Support/com.bohemiancoding.sketch3/Plugins/SketchContentSync.sketchplugin/Contents/Sketch/frameworks
2021-10-15 10:09:58.940 Sketch[24626:664561] [ContentSyncRealtime] ERROR
2021-10-15 10:09:58.940 Sketch[24626:664561] ReferenceError: Can't find variable: ContentSyncRealtime
objc[24626]: Class AFHTTPSessionManager is implemented in both /Users/ndoehring/Library/Application Support/com.bohemiancoding.sketch3/Plugins/SketchContentSync.sketchplugin/Contents/Sketch/frameworks/ContentSync.framework/ContentSync (0x155d6bbf0) and /Users/ndoehring/Library/Application Support/com.bohemiancoding.sketch3/Plugins/SketchContentSync.sketchplugin/Contents/Sketch/frameworks/ContentSyncRealtime.framework/ContentSyncRealtime (0x1888991a8). One of the two will be used. Which one is undefined. [... several more of these ...]
@nilsdoehring Thanks for the feedback.
Pull Full Design
will update the full design file, not just the current page. That is expected behavior. That number is the total number of items being synced I believe. So that includes every override etc as well in the count. This is expected to take some time since that is a large update. And while we are doing our best to avoid hanging moments, there are small moments where we need to hang the main UI to update the sketch layers on large updates.@nilsdoehring New update with 8.4.1-alpha improves this even more. It slows down the syncing a little but should prevent the crashing you were experiencing. Let me know how that works for you and we can close this issue.
@dbrody this is perfect, thank you so much!
My real-world project has 60 pages containing a mix of the scenarios described below. A pull takes 50 seconds, while the example from Getting Started takes 3 to 5 seconds.
Here are steps to reproduce in v8.3.1:
Part 1
SymbolTypeExample1.type
toproduct-visual.type
SymbolTypeExample2.type
toproduct-testimonial.type
main-flow
, selectVersion 1
and pull it.Result: This pull takes 10 to 14 seconds. A pull in the Sketch file from Getting Started takes 3 to 5 seconds. (Results may vary by machine and connection).
Part 2
The time a pull will take can be further increased by duplicating
main-flow
:Version 1
again, now it takes 50% to 80% longer.Version 1
again, now it takes over a minute to complete.Part 3
The time a pull will take can be extended to several minutes:
main-flow
, select all symbols and right-click > Detach from SymbolPart 2
, but create 500 pagesmain-flow
, selectVersion 1
and pull it.While I like coffee, this doesn't feel like expected behaviour.