microsoft / microsoft/msix-packaging
[Question] MSIX installation efficiency with hundreds of files in a package
Nobody has claimed this yet.
- Dominant language
- C
- Stars
- 1.1k
- Forks
- 193
- Avg merge
- 2h 16m
- Merged PRs (30d)
- 2
Description
Context
When MSIX package is installed from a remote HTTPS source, Delivery Optimization service downloads necessary chunks using partial HTTP 206 requests. The desired chunk size used by DO is usually 1MB, but in real life, smaller files in a package lead to much smaller range requests.
For example, in the worst case scenario when a package contains 5000 tiny files it results into 5000 sequential range requests. This essentially kills the install performance.
Question
For some reason MSIX/DO download each file separately instead of combining them into a single 1MB range request. Why is it happening and is it something that is possible to optimize somehow?
- I suspect it is due to LFH (local file headers), but at the same time it should be possible to download redundant LFH and ignore them.
- Similar MS Store downloads use a different strategy and are not affected by this problem. I can see consistent 1MB chunk downloads for MS Store.
Contributor guide
No contributing guide indexed for this repository
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 a remote HTTPS installation with an MSIX package containing many tiny files, then inspect the Delivery Optimization HTTP 206 range requests described in the issue. Done means explaining why requests are issued per file and identifying whether the behavior can be optimized, based on the MSIX SDK and Delivery Optimization boundaries.
Written by the indexing model from the issue text.
Assessment
- Domain
- operating-systems, performance
- Issue type
- Bug
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100