I'm doing a post-mortem on my game project, and this problem kept bugging me as my team couldn't solve it throughout.
So my game is a pure 2D top-down shooter built with Unity3D, with enemies constantly spawning and pathing to the player. The top-down shooter has narrow passages making it somewhat maze-like, and for now I can have anywhere from 1 to 20 enemies in-game at any point in time. I use a 2D pathfinding package which I assume to be sufficiently optimized.
Currently it performs terribly thanks to the pathfinding algorithm being called too many times.
What tricks can I use to reduce the number of calls?
PS. I know I could use NavMesh and all that built-in awesomeness. But the way we had set the game up denied us the use of those features :/