I ran into a situation similar to this one: Faster TCPSockets but backwards.
I was developing some automation for a particular device (not with Xojo), but the person I was going to borrow the hardware from sold it (thanks Covid).
Rather than give up, I built a simulator in Xojo based on the protocol documentation. I have done this for a few other simple devices. This one is more involved, but now I could test the remote automation I was writing without the actual hardware. The protocol uses UDP so I used
UDPSocket for communication.
On startup, the remote control takes a snapshot of the device settings (over 3200 values) in order to maintain a live indication of the status.
I was very disappointed to discover the throughput from my emulator was only 10-15 values per second. After inserting as may #pragma options as possible, I ended up with 25-35 per second. This still took almost 2 minutes to initialize.
I was starting to worry about the usability of my automation program, then I obtained access to a live unit. It is on another continent, but, Internet!
Using a teamware-like remote into the remote network, controlling a real device from there loads an average of 1300 values per second. 2-3 seconds to initialize is very acceptable.
Using a remote VPN (from US to Europe) averages 300 per second depending on internet traffic. This is usable for development without tying up a remote computer.
Based on the discussion in the other thread, I re-implemented the core socket using @MonkeybreadSoftware
UDPSocketMBS. That version averages around 300 per second.
UDPSocket is 10x slower than MBS, and 40x slower than a real device.