c#(3)
-
Dictionary로 CPU 100% 로드?
개발 관련 지식이지만 읽어도 크게 도움되지는 않을 것 같지만 나름 신기할? 수도 있는 사례라 잡담에 적어본다. 라이브 서비스 중인 우리 게임 QA 테스트 중에 CPU가 100%를 찍으면서 컴퓨터 자체가 먹통이 되는 버그가 발생..! 팀원분들이랑 같이 찾아보니 적용된 SDK가 버전업 된 이후에 발생하고 있었다. 해당 SDK의 사용 시점 등을 분석해서 한 함수 하나가 용의 선상에 올랐다. 현재 플레이어의 정보를 서버로 보내는 분석용 API 함수였는데 이게 버전업이 되면서 동기에서 비동기로 변경되었다고 했다. 근데 재현해서 디버깅을 하려고 해도 재현되는 순간 CPU가 100%로 로드되면서 프로파일러가 렉 먹어서 똑바로 작동하지 않고, 또 겨우겨우 프로파일러를 열어서 봐도 딱히 에러 메시지라던지 그런게 보이지 ..
2024.02.23 -
유니티 C# 개발 시 사용하기 좋은 툴 및 사이트
1. JetBrains DotPeek 유니티 + C# 으로 개발 시 프로파일러를 많이 사용하는데 프로파일러는 만능이 아니다. GC.Alloc 이라고만 표시된다던지 (보통 boxing..), DisplayClass 등등 바로 알기 힘든 내용들이 나오는 경우가 많은데 이럴때 디컴파일러를 활용해서 IL 코드 및 Low-Level C# 으로 확인해보면 무엇이 문제인지 파악하기 쉬운 경우가 많다. JetBrains DotPeek https://www.jetbrains.com/decompiler/ dotPeek: Free .NET Decompiler & Assembly Browser by JetBrains dotPeek is a free tool based on ReSharper. It can reliably de..
2024.01.03 -
C#의 람다 (익명 함수) 사용 시 주의할 점
1. C# 의 람다는 capture by reference 만 존재한다 internal class Program { static void Main(string[] args) { List actions = new List(10); for (int i = 0; i { Console.WriteLine(i); }); } foreach (Action action in actions) { action.Invoke(); } } } (많이 나오는 주의 사항이라 다들 알고 있을 것 같지만 주의사항 모음이니 추가) C# 의 람다 식을 처음 접한 사람들은 위의 코드를 보고 출력이 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 와 같이 나올 것이라고 예측하는 사람도..
2024.01.03