In my experience, implementing your own memory pool does not help performance. Since in a multi-threaded environment you should use mutex to protect memory and free access to the pool, while mutex is very heavy compared to the new / delete system.
It also does not help reduce memory leak. To reduce memory leak, you must free all allocated memory. This really needs to be resolved using your program, not the pool.
The only advantage can help using trace memory independent of a third-party tool.
source share