Unpractical vault load time for large vaults on mobile

Steps to reproduce

  1. Prepare a vault with over 50k notes + 40k attachments.
  2. Open the vault in the Android app

Did you follow the troubleshooting guide? [Y/N]

Y

Expected result

  • Fast vault load, especially after initial indexing
  • No unnecessary reindexing

Actual result

  • Vault load time is ~3 min
  • Vault reindexing is happening on every vault load
  • Vault reindexing time is ~27 min

Environment

SYSTEM INFO:
 Operating system: android 12 (OnePlus HD1913)
 Obsidian version: 1.7.1 (162)
 API version: v1.7.1
 Login status: not logged in
 Language: en
 Live preview: on
 Base theme: adapt to system
 Community theme: none
 Snippets enabled: 0
 Restricted mode: on

RECOMMENDATIONS:
 none

1.7.1 introduced a set of timers for mobile startup. Settings->Advanced what is the output of that?

If you hook up a desktop debug session to the mobile app, do you see errors in console?

There will be another round of mobile
improvements in v1.7.2.

Obsidian start-up time breakdown

Operating system: android 12 (OnePlus HD1913)
Obsidian version: 1.7.1 (162)
API version: v1.7.1

- Total startup time: 314,929ms
- Initialization: 384ms
- Vault (86,685 files): 311,762ms
- Workspace: 1,048ms
- Core plugins: 1,735ms

It shows load time as 314 seconds = 5 minutes, however it doesn’t show that the vault indexing takes another 30-40 minutes . I don’t see why the index is not being saved.

BTW, the phone battery is heavily drained. The phone is connected to the computer, but the phone consumes more energy than gets from the computer.

Regarding errors console, the only I have:

app.js:1 Capacitor plugin "Keyboard" already registered. Cannot register plugins twice.

app.js:1 M: Directory does not exist
    at returnResult (http://localhost/:915:32)
    at win.androidBridge.onmessage (http://localhost/:890:21)

I also noticed but I am not sure if it means anything

app.vault.adapter.dir is null

According to my reverse engineering of your obfuscated code, it supposed to be a string, rather than null.

If you wait with the console connected while it is indexing, does anything else pop up in console?

Nothing