Is it a problem for performance make instances every time, frame or interation?

Hi everyone, I have a question about performance and instances. I always see in Unity tutorials, that the trainers or tutors, preffer to make local instances, each frame, or each interation, such as in Update, instead of make a allocated global variable (“global” means that it isn’t a variable of a method, it is a class field).
So, my question is about it and performance, I mean, it is bad for performance make instances all the time, instead of make a “cached” variable, that you will do the instance once? Usually, I always make “global” variables, with just one instance, every time the class is instantiated (Again, ‘global’ means that it is a field of a class, and not a local variable of a method), be in MonoBehaviours or Editor stuff.
And of course, it is not only about processing, but about memory too.
So, which would be better for performance?

(Sorry about my english, hope you can understand :D)

Local variables (defined in your function) are generally faster than Instance variables (defined per class instance) since instance variables have an additional level of indirection.

When you access a local variable it is on the stack (very fast).

When you access an instance variable you use something like this.yourInstanceVariable which means that “this” must be looked up from the heap before you can access “yourInstanceVariable”. This applies even when you access the variable implicitly with yourInstanceVariable.

In fact sometimes it can help performance to create a local copy of an instance variable:

int a;

void FooMethod()
{
    int temp_a = a;
.
.
.
}

Here, it will be faster to access temp_a than a itself.

Okay, I’m beginning to understand. Is that true for any Type? As GUIContent, or some Type that I will create? And what about Strucs?