libimobiledevice/usbmuxd — pull request #9 by kamstrup (2014-03-20 11:27:15+00:00)
Title: Massive read performance improvement

I was getting a read performance from usbmuxd of around 3.5mb/s, where's on a pure Apple system I got around 17.2mb/s.

Investigating this I found that there were 2 core issues:
- The usbmuxd from Apple was ACKing tcp packages much more aggressively than we do. Trying to mimic their behaviour bumped perf to around 7.5mb/s.
- Next I realized that we are leaving the USB port mostly dormant when reading. Compared to writing were we fire off many parallel libusb_submit_transfer()s we only had one read transfer in the pipes at any time. Now we try to keep 3 read transfers going on all the time. This bumped read perf to a whopping 23.8mb/s on my VMWare Ubuntu 14.04 install (yes, even over virtualized usb, compared to bare metal Apple, we beat them hands down).