Skip to content

perf(afc): use larger upload chunks on native targets - #17

Open
Rzbck wants to merge 1 commit into
nab138:apple-codesign-quickfrom
Rzbck:perf/afc-native-chunks-20260914
Open

Rzbck wants to merge 1 commit into
nab138:apple-codesign-quickfrom
Rzbck:perf/afc-native-chunks-20260914

Conversation

@Rzbck

@Rzbck Rzbck commented Sep 14, 2026

Copy link
Copy Markdown

Summary

Follow-up to #16 based on the maintainer feedback that 8 KiB chunking is required for WASM.

This keeps the existing 8 KiB AFC upload chunks on wasm32, while using 1 MiB chunks on native targets.

The goal is to reduce native AFC write round trips without changing the WASM behavior that avoids hangs.

Details

  • wasm32: keeps 8 * 1024 byte chunks
  • native targets: uses 1024 * 1024 byte chunks
  • upload progress is still updated once per chunk
  • existing file-level buffering is unchanged (isideload_vfs::fs::read() still reads the file before upload)

The target architecture is used instead of the wasm feature flag so builds that enable the feature on a native target still use the native path.

Validation

  • native cargo check -p isideload on Windows, macOS, and Linux
  • real wasm32-unknown-unknown check with --no-default-features --features install,wasm,fs-storage
  • formatting check for the changed Rust file
  • physical Windows + iPhone transfer test over USB: AFC transfer reached 70% in ~4.31 s
  • physical Windows + iPhone transfer test over RemotePairing/RSD: AFC transfer reached 70% in ~9.09 s

In both physical tests, the AFC transfer completed and installation proceeded to the installation proxy. The final install was then rejected because the device had already reached the free developer profile app limit, which occurs after the transfer path being tested.

Scope

This PR only changes isideload/src/sideload/install.rs and contains no unrelated changes.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant