Find the flaws in my reasoning here please, I cannot get it out of my head that there must be a better way for Layout skp imports:
- So if the 1 core you use in Layout is beach-balling, while your other 5+ cores are lazily drifting about with nothing to do:
Then Layout should look for help from an idle cpu core:
- To always know of .skp changes.
- To get only the updates it needs to stay current.
A new background software, a “Layout viewport service”, could:
Run on a free cpu core, if present. Only run whenever sketchup is running and that file is placed in a open Layout file.
Read the .skp file from RAM, to know what’s happening in that file at any time, also before skp saves.
Maybe also flatten every scene that has been placed in a Layout document, retaining grouping and tags, to keep a real time updated flat version of scenes. That flat scene should be much lighter than the skp. model.
The service also collects viewport info, to know what changes to prepare for each viewport.
Send changes to Layout viewports, and only the changes, and only to viewports that has changes to them.
Layout then swaps just the changed geometry for each scene, and not the whole .skp model, and not for viewports with no change.
Make change packages ready for Layout even if its not open, cause it knows that there is a Layout file that would want those viewport changes to be ready for it when opened
- Layout could get really small incremental data imports.
- Layouts general tool performance would not be stressed from having large files purged and reimported.
- With this strategy one could have Layout presenting live changes, without the beachballs.
Layout by “laws of nature” has to struggle, having large embedded files to process all at once.
Incremental optimizations to Layout code can not possibly solve that main pickle of the large files that needs replacing. So maybe dont put those large files in there in the first place. Most importantly, if you move just one face inside just one group in sketchup, Layout has to purge and reimport that whole file. That just seems to me to be a tad absurd.
Layout , if open and in use, also could make use of other idle user time, so it can prioritise what updates to accept when. First, the updates to the current page, and when it can, prepare the other pages before the user visits them.