[ANY-VERSION] App performance discussion

Disclaimer: this is a LOVE letter to the devs of this app and to the app itself. DO NOT take this as a critique.

The whole app is great and I’m enjoying it a lot, but as the project get more complex and bigger, the sluggish it gets to navigate through stuff. (To be fair, still usable.)

From my power-user perception, it seems that the app tries to load EVERY chunk of data of a specific document (images, bookmarks, metadata, comments, stuff…) whenever I select it. I know that the current application architecture is based on “loads of files” to support the project structure and that changing it is NOT feasible, but it seems that loading them, when they become quite large in numbers, is a pain.

For example, loading a document of 7K words with 50 comments takes more than 3 seconds on a SSD drive. It’s not a big deal, I know, but that makes you feel the app as a gigantic behemoth.

My 2 cents would be to keep the current architecture, but to free the UI thread from the burden of loading everything. Maybe some background thread could do the trick? If so, when I select a document, the app loads it and then offloads the loading of “secondary data” to a background thread.

I know that there would be some challenges to this approach (like how to ensure that deleting a chunk of text linked to a comment that is not already loaded will be handled correctly) but I think it would be of a HUGE benefit of this amazing app.

Regards, love and thanks for this amazing app,

Matt

Hi Matt, Scrivener does not load all project documents, but only the ones that you load in the editor, or load in Scrivenings view. This is the benefit of the Scrivener’s project structure of having multiple documents in your project and not one big document.

In your case the sluggishness comes most likely from the many Inspector Comments and Footnotes. We are aware of this issue and have it on our list of improvements. Copy your project and try deleting your Inspector Comments and Footnotes just for the test of it, and let us know how it behaves with a reduced number of them.