Problems when dealing with large amount of files
Nobody has claimed this yet.
- Dominant language
- Swift
- Stars
- 2.5k
- Forks
- 1k
- Avg merge
- 2d 18h
- Merged PRs (30d)
- 13
Description
When using the iOS client, I frequently encounter performance problems:
-
When the main app is running, It seems that it is always running "PROPFIND" method to fetch Favorite Folders' data structures. However, once the data grows, the "PROPFIND" method can never be done. Background fetch is okay, but sometimes it makes UI stuck. And, when switching app repeatedly (e.g. using the bottom bar of iPhone X to swipe left and right) from background to the front, it usually tries to reindex from the beginning. Such behaviour can mostly cause the app stuck or crash.
-
When using the File Provider Extension of the client, if I enter a folder with many items, it will always shows "Content Unavailable" error message. As I discover, this usually happens when the PROPFIND result body size is larger than 500KB. According to Apple, the memory usage of the file provider is really limited, and the best practice should be pagination. However, I don't know how to do pagination with webdav method or how hard it is. Is that feasible? If not, can we just reduce the memory usage of enumeration process? Apple's limit seems to be 4MB.
Expected behaviour
Described above
Actual behaviour
Described above
Steps to reproduce
Described above
iOS version
iOS 12.2
App version
2.23.3.4
Server configuration
Operating system:
Ubuntu 64 18.04 LTS
Web server:
Apache2
Database:
MariaDB
PHP version:
7.2
Nextcloud version: (see Nextcloud admin page)
16.0.0 beta 3
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by reproducing the issue in the iOS client and File Provider Extension with folders containing many items, focusing on PROPFIND results, background reindexing, and memory use. Compare behavior during repeated app switching and large-folder enumeration. Done means large folders no longer cause UI stalls, crashes, or “Content Unavailable” errors.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- ios, swift
- Domain
- mobile, performance
- Issue type
- Bug
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100