I agree with a lot of these problems. The profiling woes with gen_server in particular are annoying and need to be addressed.
But I can't help but feel that this article shows someone who misses the point of Erlang. Erlang is not that fast on a single machine. In fact, it's basically equivalent to python for most common ops and much slower for string ops.
Erlang is about making scalable, concurrent software that you can horizontally scale across hardware. Getting >1k dynamic r/s processing is not something easy for anyone on one box. Quite frankly I'm shocked he got the numbers to go as high as they did on his box.
hes also having problem fully utilizing all the cores, so adding machines wouldnt solve anything
See, that's the problem. You're also caught up in it. Multi-processing is not the same as distributed computation. People seem to think that the scaling of these systems is identical, and it's not. Even with Erlang, it's not.