프로파일링
글 6개
MessagePipe 의 구독 진단은 숫자도 위치도 틀릴 수 있다
MessagePipe 는 해제 누락을 찾으라고 구독 수와 구독한 곳을 기록합니다. 그런데 비동기 브로커에서는 구독 수가 음수로 내려가고, 구독한 곳은 네임스페이스 이름이나 IL2CPP 설정에 따라 엉뚱하게 찍히거나 사라집니다.
에러 0개로 틀리는 법
이 프로젝트에서 가장 오래 잡은 버그들은 전부 컴파일을 통과했습니다. 하나는 런타임 데모까지 통과했습니다.
결과가 같은 두 API 사이에서 33퍼센트가 갈린다
1만 마리가 동시에 죽을 때 DeadTag 를 AddComponent 로 붙이느냐 비트로 켜느냐. 코드는 몇 줄 차이인데 프레임 스파이크가 31.71ms 와 42.26ms 로 갈렸습니다.
1만 마리 이웃 탐색을 6.26ms 로, 그리고 기울기가 0 이 된다는 것
셀 크기를 질의 반경에 맞추면 엔티티당 검사 수가 상수가 됩니다. 19.60ms 가 6.26ms 가 됐는데, 진짜 결과는 그 배수가 아닙니다.
배칭이 왜 끊겼는지는 화면이 알려준다
Frame Debugger 는 배치가 끊긴 사유를 문장으로 적어 줍니다. 그 문장을 실제 원인으로 옮기는 표와, 도구마다 있는 함정 하나씩.
GC 가 있는데도 메모리는 샌다
치우는 사람이 있어도 우리가 안 놓으면 안 치워집니다. 가장 흔한 범인은 이벤트입니다.