hello,

The winter is coming, not much to do outside and I have spent the day
working on something I had in mind already for too long.

Unfortunately I couldn't start the implementation as I have thought it
could be possible, there are too many nested `select' points in the code
and implement an event-driven single-thread parallel wget seems like too
much work.

I have used different threads, spawned by retrieve_tree in the recur.c,
I haven't published the code yet[1] since it is just a ugly hack for now
and still sometimes it segfaults, it will take a while before I can go
trough the code and ensure it is reentrant and can be used by different
threads without problems.

But I would like to share some results with you....

$ LANG=C wget --version | head -n 1
GNU Wget 1.13 built on linux-gnu.

$ LANG=C ./wget --version | head -n 1
GNU Wget 1.13.4-2567-dirty built on linux-gnu.

$ rm -rf it.gnu.org/ && time wget -q --no-http-keep-alive -r -np 
http://it.gnu.org/~gscrivano/files/parallel/

real    0m2.808s
user    0m0.008s
sys     0m0.020s
$ rm -rf it.gnu.org/ && time ./wget --jobs=2 -q --no-http-keep-alive -r -np 
http://it.gnu.org/~gscrivano/files/parallel/

real    0m1.291s
user    0m0.004s
sys     0m0.016s
$ rm -rf it.gnu.org/ && time ./wget --jobs=4 -q --no-http-keep-alive -r -np 
http://it.gnu.org/~gscrivano/files/parallel/

real    0m0.521s
user    0m0.008s
sys     0m0.012s
$ rm -rf it.gnu.org/ && time ./wget --jobs=8 -q --no-http-keep-alive -r -np 
http://it.gnu.org/~gscrivano/files/parallel/

real    0m0.395s
user    0m0.008s
sys     0m0.004s


Nice eh? :-)  Any comment?  Suggestion?  Insult?

Cheers,
Giuseppe

1) but the braves can find the current ugly hack here:
  http://it.gnu.org/~gscrivano/files/parallel_wget.patch

Reply via email to