[C#] Environment.TickCount와 예제

지즈·2024년 12월 25일

CSharp

목록 보기
2/3

Environment.TickCountC#에서 시스템이 부팅된 이후 경과된 시간을 밀리초 단위로 반환하는 속성이다.

*시스템 부팅이란?

컴퓨터가 전원을 켠 후 운영 체제(OS)로드되고 준비 상태에 도달하는 과정이다. 프로그램실행되는 시간과 무관하다. 프로그램의 실행은 사용자가 애플리케이션을 시작하는 것이다.

기본 설명

  • Environment.TickCount시스템 시작 후 경과된 시간을 정수형 값(int)으로 반환한다.
  • 값의 범위는 int 자료형의 크기(32비트)에 따라 2,147,483,648 ~ 2,147,483,647 사이다.
  • 24.9일(24일 20시간 31분 23.647초)이 지나면 값이 음수로 변경된다. 32비트 정수의 최대값을 초과하면 오버플로우(순환)가 발생하기 때문이다.
    • 2,147,483,647ms ≈ 24.9일


사용 예시

1. 부팅 후 경과 시간 출력

using System;

class Program
{
    static void Main()
    {
        int tickCount = Environment.TickCount;

        // 밀리초 -> 초 -> 분 -> 시간
        TimeSpan time = TimeSpan.FromMilliseconds(tickCount);

        Console.WriteLine($"System Uptime: {time.Hours}h {time.Minutes}m {time.Seconds}s");
    }
}

1-1. 출력 예시
부팅 후 2시간 30분 15초가 지난 경우라면

// SQL

System Uptime: 2h 30m 15s

2. 간단한 시간 측정 (=타이머 역할)

Environment.TickCount는 프로그램 내에서 간단한 시간 측정을 위해 사용할 수도 있다.

using System;

class Program
{
    static void Main()
    {
        int start = Environment.TickCount; // 시작 시간 기록

        // 작업 실행 (예: 2초 동안 대기)
        System.Threading.Thread.Sleep(2000);

        int end = Environment.TickCount; // 종료 시간 기록
        int elapsed = end - start; // 경과 시간 계산

        Console.WriteLine($"Elapsed time: {elapsed} ms");
    }
}

2-1. 출력 예시

// yaml
Elapsed time: 2000 ms


64비트 정밀도를 제공하지 않으므로 밀리초 단위이지만, 나노초 등 더 높은 정밀도가 필요한 경우 Stopwatch를 사용하는 것이 좋다고 한다.

profile
클라이언트 개발자가 되는 그 날까지 킵 고잉

0개의 댓글