As you might know, FTP is bad at handling of small files. It needs to establish a new TCP connection for the data and always need several round trip between the client and the server. Thus, the time to transfer several small files is dominated by the latency rather than the actual data transfer.
Using several connections to perform some commands / transfers in parallel may improve the performance. Yafc could open several command connections to the server and dispatch its commands to the connections.
The main issue is, I think, that the current code has been thought for synchronous IO operations. And refactoring it to handle asynchronous file transfers may take a sensible amount of work.
From Debian bug 782184:
As you might know, FTP is bad at handling of small files. It needs to establish a new TCP connection for the data and always need several round trip between the client and the server. Thus, the time to transfer several small files is dominated by the latency rather than the actual data transfer.
Using several connections to perform some commands / transfers in parallel may improve the performance. Yafc could open several command connections to the server and dispatch its commands to the connections.
The main issue is, I think, that the current code has been thought for synchronous IO operations. And refactoring it to handle asynchronous file transfers may take a sensible amount of work.