which one is faster? defining a variable as a global variable or as an input of function?
    8 views (last 30 days)
  
       Show older comments
    
I want to know which one is faster? defining a variable as a global variable or as an input of function?
0 Comments
Accepted Answer
  Walter Roberson
      
      
 on 24 Aug 2015
        global is slower. The location of the global variable must be searched at execution time when the "global" is encountered. The location of passed parameters is already known.
1 Comment
  Diaa
      
 on 24 Jun 2021
				
      Edited: Diaa
      
 on 24 Jun 2021
  
			Is it faster to define auxiliary variables instead of retrieving values from a parent matrix?
In other words, which one is faster:
a = randn(3,4);
clear b c d g
tic
b = a(3,4);
c = 5*b; d = 10*b; g = 20*b;
toc
clear c d g
tic
c = 5*a(3,4); d = 10*a(3,4); g = 20*a(3,4);
toc
knowing that my R2021a version tells me the second way is faster despite indexing into variable a multiple times?
More Answers (1)
  David Young
      
 on 23 Aug 2015
        
      Edited: David Young
      
 on 23 Aug 2015
  
      It is usually a bad idea to use global variables. There are many papers, going back over 40 years or more, explaining why. One example is this chapter. I strongly recommend you avoid them. (Global variables, that is, not the papers.)
It is very unlikely that using a global rather than passing an argument will make a noticeable difference to your execution time. If you really suspect it might, the best way to find out is to do some tests using timeit.
0 Comments
See Also
Categories
				Find more on Performance and Memory in Help Center and File Exchange
			
	Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!


