which one is faster? defining a variable as a global variable or as an input of function?

조회 수: 3 (최근 30일)
I want to know which one is faster? defining a variable as a global variable or as an input of function?

채택된 답변

Walter Roberson
Walter Roberson 2015년 8월 24일
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
Diaa
Diaa 2021년 6월 24일
편집: Diaa 2021년 6월 24일
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?

댓글을 달려면 로그인하십시오.

추가 답변 (1개)

David Young
David Young 2015년 8월 23일
편집: David Young 2015년 8월 23일
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.

카테고리

Help CenterFile Exchange에서 MATLAB에 대해 자세히 알아보기

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by