How efficient is GameObject.FindGameObjectsWithTag?

I know it depends, if you need an example, 50 objects have the tag out of 100 total in the scene.

from the docs it says:

For performance reasons it is recommended to not use GameObject.Find every frame Instead cache the result in a member variable at startup or use GameObject.FindWithTag.

but i’d do this on start. but only calling it in update when absolutly necessary!

best way is to add all objects to an array, and then use the array for further processing like:

GameObject[] myarray = GameObject.FindGameObjectsWithTag(“mytag”);

foreach(var go in myarray){
         if(go.name == “myname”){ 
         //do something
         }
}