Feature request : multithreaded header decode and filtering
Posted: Tue Nov 30, 2010 8:56 am
Hi Alex!
Firstly, I know that these might be very large requests, so sorry about that! m(_ _)m
On my machine I can download headers at about 20 megabytes (not megabits) / second thanks to compression, but UE can only cope with about 5MB/s before it stops responding. (It doesn't crash, it just stops listening to mouse clicks etc). As I have some very large newsgroups in my list, and as I can't schedule regular header downloads, this means that I have to wait quite a while with the CPU usage locked at about ~25% (quad core) before I can look at what has been downloaded. Do you have any plans to multithread the header retrieval and kill code segments? I would imagine that all that would be needed is a buffer / allocator thread and (core-count or core-count -1) threads for killing / processing headers, but I'm aware that might be quite a big all.
(Maybe it needs a reconstructor thread afterwards to pack the processed headers into whatever format UE uses?)
For the second part, I find that filters work quite quickly - just seconds in even large groups thanks partly to kill features and retention-limiting - but multithreading might be good there as well.
Anyway, just wondering!
Simon
Firstly, I know that these might be very large requests, so sorry about that! m(_ _)m
On my machine I can download headers at about 20 megabytes (not megabits) / second thanks to compression, but UE can only cope with about 5MB/s before it stops responding. (It doesn't crash, it just stops listening to mouse clicks etc). As I have some very large newsgroups in my list, and as I can't schedule regular header downloads, this means that I have to wait quite a while with the CPU usage locked at about ~25% (quad core) before I can look at what has been downloaded. Do you have any plans to multithread the header retrieval and kill code segments? I would imagine that all that would be needed is a buffer / allocator thread and (core-count or core-count -1) threads for killing / processing headers, but I'm aware that might be quite a big all.

For the second part, I find that filters work quite quickly - just seconds in even large groups thanks partly to kill features and retention-limiting - but multithreading might be good there as well.
Anyway, just wondering!
Simon