Hello,
The process for the client to check and optionally updates its modules is the
following:
1. Get the module list installed on server.
2. For each module it grabs from server its checksum.
3. For each module it grabs from server its repository URL.
4. Download modules if the checksum is different from local one or the module
doesn't exist locally.
This model is particularly ineffective on Internet due to the LATENCY. Doesn't
matter how much your bandwidth is, the latency is the same. Also if you connect
from Europe to America is even worse.
I am including a patch which dramatically reduces the startup time reducing the
requests to server and consolidate information in fewer ones. Also due to the
info transmitted in each request is bigger the patch enable gzip compression to
take advantage and reduce the download time.
The new process is:
1. Get the module list installed on server, including its checksums and
repository URL compressed using gzip.
2. Download modules if the checksum is different from local one or the module
doesn't exist locally.
Apply the patch in the trunk directory:
~/src/wonderland/trunk> patch -p 0 <checksum-gzip-performance.patch
In my tests the start-up time between I press the Login button until the window
disappear lowered from 23seg to 6s
test it.
Original issue reported on code.google.com by crrami...@gmail.com on 4 Oct 2014 at 2:31
Original issue reported on code.google.com by
crrami...@gmail.com
on 4 Oct 2014 at 2:31Attachments: