If its turn based, you could have it so they only recompute their fov on either their turn, or on the turn before theirs, evening out the computational need and reducing spikes
Alternatively, you could look into making use of a compute shader, which will offload the task to the GPU, allowing it to run in parallel.
You could make a central ‘map’ with the positions of all obstacles, and update that, then you can choose to only notify units within the view radius of that point
This is a year old, so probably not needed anymore, but I figured if you had the question so might other people