Someone can comment on this? How can I boost performance of the libftdi 1.0 to come closer to the 0.20 release?
Some benchmarks on the target (1GHZ single core AMD-processor, running windows XP)
The test is just looping a read call, latency set to 1, so theoretically, 1000 loops / second should be performed. No data is transferred.
Written in c and compiled with gcc.
TimerMsec t;
t.Start();
while (1)
{
ret = ftdi_read_data(ftdi2, temp, 1024);
if (ret < 0)
printf("Error reading\n");
loops++;
if (t.Peek() > 1000)
{
t.Start();
printf("%d loops\n", loops);
loops = 0;
}
}
- libftdi 1.0 + WinUSB driver --> ~920 loops/second and > 25% cpu-load
- libftdi 0.20 + libusb-win32 driver --> ~900 loops/second and 6 to 8% cpu-load.
Same test on my desktop pc does not reveal these differences (multi
core, more cache, modern operating system, ...)