Use an object pool for event object.
Use an object pool for event object.

I created an object pool to eliminate object allocation/deletion. The pool is manually made as I am not familiar with boost::pool<>.
The pool is made of a std::queue<>, using std::list<> as the underlying data structure instead of the default std::deque.

The overall throughput is improved to 197k events per second on tiberius06, and the cpu utilization is about ~580%.

--HG--
branch : chuangw/multicompiler

jojochuang/eventwave,jojochuang/eventwave,jojochuang/eventwave,jojochuang/eventwave,jojochuang/eventwave