Uses optimizations for port mapping with Boost.Asio:
- thread-pool for executors: number of threads equals to number of CPU-cores
- thread-pool for listeners (acceptors): one or many of threads
- custom allocator for handlers, that eliminate dynamic allocate of memory, when using boost::bind() (re-uses static array from connection's class)
- memory pools for connections, that reduce at ten fold the numbers of memory allocations for connections (allocates memory at once under 10 connections, by default connections_in_memory_pool = 10, but it can increase)
- uses move semantic (boost::move) to eliminate copy of boost::shared_ptr<> and doesn't uses atomic counter with memory barrier