Reduce number of allocations
Points to improve :
- Reduce usage of std::function
- Move GoSelector (DriverSlots) into class instead of local main (called many times and induce plenty of allocs)
- Use a buffered allocator in std::queue of GoChannel to reuse memory instead of reallocating many times (maybe don't use std::queue but a C link list and manage memory pool by hand directly in GoChannel)
- Use a memory pool for queue in gather sched