I am using Obsidian Sync (with iCloud) across MacOS and iPhone and iPad, and noticed the iPhone is having a ton of performance problems:
Scrolling issue
Crashes with Attachments
Recently crashing in normal notetaking
My vault is ~13,000 files and uses DataView extensively with a lot of links between files. Is my Vault size an issue? If so, are there any steps I can take to improve performance, or mitigate crashes?
Or is there an issue with iOS in general? And if so, what’s the outlook on releasing an update to resolve this?
Thanks, @gino_m - so if DataView is slowing the performance, I’ll dial back the usage there and see how iOS responds. That’s doable because I have had a lot of non critical Dataview queries going.
Zooming out to the big picture, are there any ‘rules of thumb’ surrounding DataView and when it can impact performance? Like performance suffers up to X results per query, or Y queries in a file hurts performance? Or as a concern in my case, should I consider cleansing my vault or starting a new vault given all the legacy files with DataView queries…
I have no benchmarks for you. I only know this: indexing (and caching in) a large vault (especially with a lot of metadata, backlinks, etc.) will be a strain on device RAM – also, the plugin may not be optimized properly for (large-vault) mobile use.
As a side note, I found that enabling plugins that are DataView or use DataView (DB Folder, Projects) through the community-plugins.json file might work better than enabling them through the app interface. Sometimes performance was okay-ish, other times the app crashed on me. One can also tinker with disabling some core plugins to save more RAM, etc. All in all, not a good experience, so I use DV on desktop only. Fingers crossed for DataCore or the (coming?) core DataBases plugins for the fututre.
What one can also try doing is make a separate profile/config on iOS just for Dataview, meaning you strip off everything else – core and community plugins and have DV (and a couple of other must-have plugins; DB folder, whatever) enabled for that profile. (You can set the plugins to be enabled in the community-plugins.json file of the new profile.)
You can create the profile on desktop, or on iOS using the Taio app – which enables one to access hidden folders.
(Free-tier Taio won’t let you edit json files; rename the file to .md, edit it and rename it back to json.)
Then in About you relaunch with the new profile/config.
(In the future, the contents of About will be relocated to General and other menus on iOS as well.)
I’m not saying this will work. I’m just saying one can find ways/workarounds.
In About, one can relaunch with the main iOS configuration afterwards (.obsidian, .mobile, whatever it’s called) when the data crunching is done.
One more thing.
When using a larger vault on mobile, things can get sluggish (performance is of course proportional to how many plugins are vying for resources). What I found is that keeping two profiles (the secondary one can even be the exact replica of the primary one, so you can copy-paste stuff and rename the dot folder which you can relaunch with) is a good idea, regardless of whether one wants to use DataView or not.
This might have something to do with how cache files are accessed by the app. (I am on a jailbroken device and can remove the cache folders and re-index, but that doesn’t solve things for long; employing this alternate use of profiles can come with a performance boost as I’ve experienced just now again.)
This trick seems to have some sort of refreshing effect and can be used when a simple restart of the device doesn’t help.