3 ms·
I used POE to get more work out of each thread of a web crawler. It scaled to about 20 asynchronous crawlers in one thread, but above that amount things got mu
by rjurney 18y ago
I used POE to get more work out of each thread of a web crawler. It scaled to about 20 asynchronous crawlers in one thread, but above that amount things got much more complex than using threads. POE's non-preemptive scheduling made it quite tricky to get everything working ok past that point - some component or other would time out, and it was murder debugging POE's debug output.
It ended up being harder than just using threads, although I was able to get 20 times the work per thread, so I'll count that a success.
POE is tricky as hell, and I kept thinking, "Why am I not just using Erlang? It does this, only its scheduling is preemptive and I don't have to worry so much about things breaking."
POE is cool, but it only gets you so far if you're doing something very parallel.