Originally Posted by Adoby
The problem with many books on the device seems to be the initial connection between the device and Calibre, when info about the contents of the device is gathered and transmitted to Calibre. That process might take a very long time now, if you have a few thousand books on the device. Don't really know why?
When a device is connected, calibre requires that device to provide metadata for every book on the device. For USB-based devices, this is accomplished by the calibre device driver scanning the file system and comparing the results to the contents of the .metadata.calibre file. As this clearly cannot work over the air, CC pushes the metadata to calibre. For some reason it takes around 1/4 second for calibre to send & receive a message (I think it is related to how python threads), so that is the time per book.
I will look at bunching up books into a single network transaction to improve on that 1/4 second, but I must be very careful. Some devices seem to have almost no memory, so creating bigger packets could crash CC.