[C#] 의미없는 구조체

c# 2023. 1. 26. 17:35
728x90
struct TenNumbers
{
    public double a1, a2, a3, a4, a5, a6, a7, a8, a9, a10;
}
class Program
{
    private static double calc(TenNumbers a)
    {
        return a.a1 + a.a2 + a.a3 + a.a4 + a.a5 + a.a6 + a.a7 + a.a8 + a.a9 + a.a10;
    }
    static void Main(string[] args)
    {
        var start = DateTime.Now;
        double sum = 0;
        for (int i = 0; i < 100000000; i++)
        {
            sum += calc(new TenNumbers());
        }
        Console.WriteLine(sum);
        Console.WriteLine(DateTime.Now - start);
    }
}

 

 

class TenNumbers
{
    public double a1, a2, a3, a4, a5, a6, a7, a8, a9, a10;
}

 

클래스를 구조체로 바꾸면 속도가 빨라지는 것은 작은 크기의 데이터가 많을 때만 해당된다.

데이터가 크거나 수가 적은 경우에는 오히려 느려질 수 있다.

 

구조체를 인수로 사용하면 통째로 복사되기 때문에 호출을 반복하면 속도가 엄청나게 느려진다.

크기가 작은 데이터가 많을 시에 구조체를 사용한다.

 

 

728x90

'c#' 카테고리의 다른 글

System.Data.MissingPrimaryKeyException  (0) 2023.01.27
[C#] 파일 확실하게 닫기  (0) 2023.01.26
[C#] Out of Memory  (0) 2023.01.26
[C#] 무명 메서드2 가이드와 장점  (0) 2023.01.25
[C#] 무명 메서드  (0) 2023.01.25
Posted by 바르마스
,