사양 펜4 2.8 싱글 1G
FX5800 128M (최저사양 예상 머신)
최저사양에서 로딩이 약 20-30초. 빨라졌다는 느낌은 들지 않음.
커스터마이징에서 18프레임.
마을에서 모였을때 약 16-18 프레임. 30명 정도 있었음 . 나쁘지 않음.
서있다 이동하자, 마을안의 캐릭터들이 모두 사라진 다음 다시 그려짐. (한 번만 그런 증상 발생)
UI 왜이렇게 안눌립니까 답답해 미치겠는줄 알았음.
옵션을 바꿔도 ‘최고사양’ 외에는 사실상 프레임 차이가 없었습니다. 문제 분석 들어갑니다.
최저에서의 일반적인 환경입니다.
렌더가 27% 정도, 캐릭터가 많이 나왔으니 어쩔 수 없이 스키닝이 26% 정도, 에니메이션 업데이트도 당연히 17%, 메인 프레임 워크가 17% 정도… 일반적으로는 매우 괜찮은 환경이라고 할 수 있겠습니다. 비율적으로도 괜찮아요.
최저 사양에서의 최저옵션으로는 나쁘지 않다고 볼 수 있습니다. 프레임은 그냥그냥 그렇고, 비율은 괜찮아요.
물론 튀는 부분 (스파이크) 은 있지만 그 부분은 나중에 또 얘기하겠습니다.

그래서 이번엔 그 최저사양에서, 그래픽 옵션을 ‘중’ 으로 올려 보았습니다.
결과는? … 프레임이 거의 차이가 없군요! 반쯤 떨어지길 원했는데.. 이유가 뭘까요? 여기서 유추해 볼 수 있는 것은 다음과 같습니다.
- 이미 그래픽 카드 FX5800 128M 가 중급 사양 이상의 성능을 가지고 있다. (하긴, FX5800 정도면 그렇게 못난 놈은 아니거든요)
- 그래픽 옵션을 바꾸면 드로잉 부담이 줄어드는데, 캐릭터가 많은 상태라 어쩔 수 없이 스키닝이 높고 메인 프레임워크의 부담이 심해서 드로잉의 영향이 매우 미미할 수 밖에 없다.
대충 이정도로 예상할 수 있겠네요. 이전에 테스트에서 128M로는 비디오 메모리가 너무 작은게 아니냐는 테스트도 있었습니다만 , 이번 테스트에서는 그런 증상은 볼 수 없었습니다.
위 유추를 할 수 있는 이유중 하나는 여전히 비율이 그대로라는 것입니다. 카메라 렌더 비율이 26.5% .
다음에는 그래픽 카드를 좀 더 낮춰서 테스트 해봐야 할 듯 합니다.
뭐 여러가지 경우가 있기 때문에 이걸로 결과를 내리기는 좀 성급하죠.
자, 이번엔 스파이크 문제입니다.
훈련소로 들어가자, 드로잉 비율은 더욱 떨어지면서 메인 프레임 워크 비율이 높아지기 시작하더군요.
특히 스파이크 현상이 눈에 많이 띄었습니다.
지금부터 그 증상들을 체크해 보지요.

가비지 콜렉터입니다! 사실상 어쩔 수 없다고 들은 것 중 하나. 그다지 많이 나오지는 않는 문제니까 일단 넘어갈 수 있다고 치지만, 어쨌건 순간적으로 90% , 394 ms 를 먹어버린다는걸 잊으면 안됩니다.

오히려 가장 많이 볼 수 있던 증상 ‘이유없는 메인 프레임 워크 스파이크 증상’ 입니다.
보시면 알겠지만 NmMainFrameWork.Update 에서, 함수명을 알 수 없는 이유로 82.7% 129.34ms 를 먹는 증상이 발견되었습니다. 그리고 보시면 알겠지만, 메인 프레임워크가 최하급의 그래픽 카드에서 ‘중’ 급 옵션으로 돌렸는데도 불구하고 훈련소 안에서는 약 35% 이상을 먹고 있다는 것을 알 수 있습니다. 이번 테스트의 결과만 봐서는, 이 부분을 잡아야 전체적인 프레임이 증가하겠다고 생각되네요.

그리고 최근 일어난 일련의 문제로 주목을 받아온 브라우저 문제를 살짝 봤습니다.
사파리에서 돌려 보고 프로파일링을 해 보았는데요.

일단 들었던대로 사파리에서는 상당히 프레임이 잘 나오네요. 심한 경우에는 익스8에 비해 두 배까지도 나옵니다.
하지만 꽤 불안한 모습도 보였습니다. 종료시 에러 난다던가, 첨에 시작할때 창 크기가 이상하다던가, 프레임이 들쑥날쑥 하다던가…
재미있는건 위에 보시면 알겠지만, 최저사양의 ‘하’ 옵션인데도 드로잉 부하가 절반 가깝게 차지한다는 겁니다. 익스8이랑은 전혀 다른 양상을 보이네요.
물론 스파이크가 없는건 아닙니다. 보는김에 사파리의 스파이크를 분석해 보면…

Animation.AddClip 이 순간적으로 88.6% 13.12ms 를 차지하였고, 3번이나 중복해서 튄 것을 보실 수 있을 것입니다.

또 하나는 CombineMeshes ! 65% 52.23ms 를 잡아먹네요. 이 두개가 스파이크의 주범으로 보입니다. 익스8 보다는 좀 확실하게 보이네요.

남은 하나는 한 번 나온 겁니다만, TsBundleService.Update 에서 73.9% 가 나왔습니다. 36.97ms.
이건 뭔가 번들을 로딩할때인건가요?
오늘의 테스트는 여기까지입니다. 아직 스파이크 현상은 꽤 있고, 이 현상이 꽤 기분나쁘게 느껴집니다.
이 부분을 집중적으로 분석해서 고쳐야 할 것으로 보입니다.