실행 시간을 계산하기 위해 코드를 생성했습니다.힙에서 실행 시간 - 스택
효과가 있습니다. 그러나 나는 설명 할 수 없었다 : 힙과 스택의 변수의 차이는 무엇인가?
나는 "실행 시간"에 대해 이야기하고 있습니다.
Heap : a, b, c에 3 개의 변수를 만들었습니다.
스택의 3 가지 변수 : aa, bb, cc.
내 코드 :
class Program
{
private int a = 1;
private int b = 2;
private int c = 0;
static void Main()
{
int aa = 1;
int bb = 2;
int cc = 0;
var sw = new Stopwatch();
var _sw = new Stopwatch();
Program pro = new Program();
for (int k = 0; k < 10; k++)
{
sw.Start();
for (int i = 0; i < 500000000; i++)
{
pro.c += pro.a + pro.b;
}
sw.Stop();
Console.WriteLine("Heap:");
Console.WriteLine("TotalMiliseconds: {0}", sw.Elapsed.TotalMilliseconds.ToString());
Console.WriteLine("__________________________________");
sw.Reset();
_sw.Start();
for (int j = 0; j < 500000000; j++)
{
cc += aa + bb;
}
_sw.Stop();
Console.WriteLine("Stack:");
Console.WriteLine("TotalMiliseconds: {0}", _sw.Elapsed.TotalMilliseconds.ToString());
Console.WriteLine("__________________________________");
_sw.Reset();
}
Console.ReadKey();
}
}
다음내 질문은 : 힙의 실행 시간 스택보다 항상 빠른 이유를 말씀해 주시겠습니까?
감사합니다.
관련 항목 : [스택 및 힙은 무엇이며 어디에 있습니까?] (http://stackoverflow.com/questions/79923/what-and-where-are-the-stack-and-heap) –
소스에 따르면 힙은 스택보다 느리며 케빈이 묻는 것과는 대조적입니다. 힙이 더 빠른 경우에 대한 정보는 제공하지 않습니다. – Adimeus
코드를 실행할 때 '힙'루프는 항상 약 10 % 느리게 실행됩니다. – Rotem