What comes to registered version, it should be somewhat faster (as number of threads handling input/output, is limited to 1 in unregistered version + there's memory pooling in the registered version - which reduces memory fragmentation + it speeds up memory allocations)
There are certain problems related to load balancing per number of connections / bandwidth / bytes transfered per device.
Number of connections: directory lists make it nearly impossible to guess how many of the connections are being used for file transfers. If someone issues list at same time you begin your transfer, there's 50% chance that wrong device is selected (device 'x' has two file transfers while device 'z' has none). Not to mention problems that stalled connections, slow transfers etc. cause.
Bytes transfered: What if two clients concurrently begin transfering 'n'gb file. Server would need to know name of file that is going to be transfered, before client issues PASV/PORT.
Bandwidth: You'd need to know average transfer rate for transfer that has not yet been done, before the client begins transfering.
Number of connections is the only thing that _could_ actually provide decent accuracy, but it requires hundreds of simultanous transfers.
|