I’m working on an external USB device that talks to the pc using USB Bulk Transfers. The device use a special protocol with two data endpoints, one for reads and one for writes (0x01 and 0x82).
The device and the pc software work perfectly in any physical O.S., either linux, MacOS or Windows.
When working on a virtual machine, on VMWare Workstation PRO 15.5, either Windows or Linux (guest), the transfer are extremely slow.
In a test we made, transferring around 5000 records between the pc and the device, we had the following results:
native Linux: Test completed in 2.0 to 2.9 seconds (release/debug)
native Windows 10: Test completed in 2.9 to 3.0 seconds (32 / 64bit)
Windows 10 VM, Windows 10 Host: Test completed in 120seconds (64 bit)
Linux VM (Mint 19.2), Windows 10 Host: Test completed in 500s
Windows 10 VM, Linux Host (Ubuntu 18.04): Test completed in 15s
As you see, performances are poor to awful in VM, regardless of the Guest and Host o.s.
The VM are similar, USB mode always set to 2.0, O.S. are always up to date. test software is always the same, compiled in VS 2019 or gcc 8 for linux, and works without any issue except for the performances.
Does anyone know of anything I can do to diagnose and hopefully fix this issue?
Thank you in advance and kind regards