Is this a known issue with the ear clipping algorithm? At first I saw poor performance due to all the memory allocations from the object pool. A proper object pool with a free list fixes that. Replaced all std::vector with a simple vector allocating from an arena.
Now issue is excessive time spent in eliminateHoles. Going to try a monotone polygon decomposition algorithm instead as I read it handles holes better. Wanted to ask here in case I was doing something wrong. I'm on a slow android device with a lot of triangulation