function_zero : 1.4 sec function_one: 4.66 sec function_two: 6.30 sec If we subtract the time for the loop function_one: 3.26 sec function_two: 4.90 sec 3.26/4.9 = .66 And since the ScaleFactor has a getter, it's a call rather than a load static void Main(string[] args) { Time.Execute(function_zero, false); Time.Execute(function_one, false); Time.Execute(function_two, true); } static void function_zero() { int i, j; for (i = int.MaxValue / 4; --i != 0; ) { //j = --ScaleFactor; } } static void function_one() { int i, j; for (i = int.MaxValue/4; --i != 0; ) { j = --ScaleFactor; } } static void function_two() { int i, j; for (i = int.MaxValue / 4; --i != 0; ) { --ScaleFactor; j = ScaleFactor; } }