It would apply to any programming language that uses loops, AND, which as a compiler that does not produce machine code that reinterprets the source into a more compact structure anyway.
(Some compiler options have the potential to mangle attempts at loop unrolling, for instance.)
It's functionally the difference between this:
DoThisThing=0
For DoThisThing 1 to 25
Call DoTheThing()
Next
and
Call DoTheThing()
Call DoTheThing()
Call DoTheThing()
Call DoTheThing()
Call DoTheThing()
Call DoTheThing()
Call DoTheThing()
Call DoTheThing()
Call DoTheThing()
Call DoTheThing()
Call DoTheThing()
Call DoTheThing()
Call DoTheThing()
Call DoTheThing()
Call DoTheThing()
Call DoTheThing()
Call DoTheThing()
Call DoTheThing()
Call DoTheThing()
Call DoTheThing()
Call DoTheThing()
Call DoTheThing()
Call DoTheThing()
Call DoTheThing()
Call DoTheThing()
The second one takes a significantly larger amount of memory, because it has unrolled the loop. However, it has zero loop structure, and thus frees up 25 absolute evaluations and 25 absolute counter value changes.
If you fire off that code 100 times every second, you are talking 5000 operations saved by unrolling, in absolute terms. However, if the data used by DoTheThing() has to come from the memory bus each and every time, and cannot be cached, because the size of the program chain has exhausted the space in the CPU, the gains are totally lost, because entire instruction cycle windows are wasted waiting for DoTheThing() to complete. It's even worse if DoTheThing() has to fetch something from virtual memory. (which can well happen, if basically every program in the computer has had its loops unrolled, all seeking the same performance increases.)
You need to be more aware of the limitations of the system you are running on.
Getting developers to comprehend that not everyone trades out their computer every 2 years like they do (because waiting on the compiler is an arduous task, that their time is better spent doing things elsewhere), and thus the real-world environment their code will be running in is not the bleeding cutting edge they are always using (and where their code runs fabulously!), further gets them in a pissy mood when you bring it up.
The maxims I always hear are "CPU is cheap. Ram is Cheap." Or, in other words, "You should have a 24 core threadripper, and 50gb of RAM, like I do."