반응형

프로그래밍/C# 3

C# 가비지 컬렉터(GC)

1. 가비지 컬렉션이란?가비지 컬렉션(GC)은 프로그램이 더 이상 사용하지 않는 메모리를 자동으로 해제하는 메모리 관리 시스템입니다. C#은 관리형 언어(Managed Language)로, 개발자가 직접 메모리를 할당하고 해제할 필요 없이 CLR(Common Language Runtime)이 자동으로 메모리를 관리합니다. . 2. 가비지 컬렉션의 작동 방식2.1 세대별 가비지 컬렉션 (Generational GC)C#의 GC는 3개의 세대(Generation)로 구성되어 있습니다:Gen 0: 새로 생성된 객체들이 위치Gen 1: Gen 0에서 살아남은 객체들이 위치Gen 2: Gen 1에서 살아남은 객체들이 위치 2.2 가비지 컬렉션 프로세스마킹(Marking): 사용 중인 객체를 식별압축(Compa..

프로그래밍/C# 2025.05.13

백준 C# 속도 개선

최근 백준 C#과 관련해서 시간초과 이슈가 있는 것 같습니다.이전에 통과했던 코드도 최근에는 시간초과로 통과가 안된다는 사례도 있었습니다.이러한 상황에서 속도 개선하는 방법을 공유하고자 합니다. Console.WriteLine백준 알고리즘 문제를 풀다 보면 많은 양의 출력이 필요한 경우가 있습니다.Console.WriteLine()은 호출될 때마다 실제로 콘솔에 출력하는 I/O 작업을 수행합니다. I/O 작업은 메모리 접근에 비해 매우 느린 작업이며, 이를 반복적으로 수행하면 프로그램의 성능이 크게 저하되며 시간 초과의 이유가 됩니다. 이 때, 사용할 수 있는 방법이 StringBuilder입니다. StringBuilder문자열을 바로 출력 하는 것이 아니라 StringBuilder를 통해 문자열을 저장..

프로그래밍/C# 2025.04.21

C# Func 과 Action

Func와 Action는 전체적으로 굉장히 비슷함 둘의 차이는 반환이 있느냐 없느냐의 차이. Func는 마지막 인자를 제외한 값들을 인수로 보내고, 마지막 인자는 반환값으로 돌려받음 Func condition = returnBool; _target = Managers.Object.Find(condition); bool returnBool(GameObject go) { PlayerController pc = go.GetComponent(); if (pc == null) return false; Vector3Int dir = (pc.CellPos - CellPos); if (dir.magnitude > _searchRange) return false; return true; } public GameObjec..

프로그래밍/C# 2022.07.06
반응형