Why is tag fast?

I heard that FindGameObjectWithTag is faster than GameObject.Find. But why?
Although they both are strings, why are there performance differences in them?

Does tag work differently than name?
I want to know why FindGameObjectWithTag is faster than GameObject.Find.

Hi @mon10lur49
Because not all gameobjects have a tag by default(they have Untagged as their tag)

187318-tag-dropdown.png

therefore:

number of gameobjects with tag <= number of gameobjects

so it’s faster

As far as I know, tag is not a string, really. That’s why there’s GameObject.CompareTag method. Tag is internally converted from string to some simple value