ݺߣ

ݺߣShare a Scribd company logo
2019 iFunFactory Dev Day
‘아이펀 엔진으로 MO 게임 서버 개발하기’
‘아이펀 엔진으로 MO 게임 서버 개발하기’
2019 iFunFactory Dev Day
2
남승현 프로그래머
성능 분석 및 디버깅
2019 iFunFactory Dev Day
목차
• Minidump
• Debugger
• 메시지 로그
• 이벤트 프로파일링
• CPU 프로파일링
3
2019 iFunFactory Dev Day 4
Minidump
* 서버가 크래시할 때 자동으로 생성되며 Stacktrace 를 출력
* 크래시하는 위치를 가장 빠르게 알 수 있음
2019 iFunFactory Dev Day 5
Minidump
<시연>
서버가 크래시하는 문제 해결하기
2019 iFunFactory Dev Day 6
Debugger
* VS, VS Code, GDB
* Debugger 로 게임 서버를 실행할 수 있음
* 실행중인 게임 서버를 Debugger 에 붙일 수 있음
* 프로세스가 멈추기 때문에 타임아웃 관련 설정을 변경해야함
2019 iFunFactory Dev Day 7
Debugger
<src/MANIFEST.town.json>
2019 iFunFactory Dev Day 8
Debugger
<GDB 로 게임 서버 실행하기>
<실행중인 게임 서버를 GDB 에 붙이기>
2019 iFunFactory Dev Day 9
Debugger
<시연>
Visual Studio Code 를 사용하여
공격을 해도 HP 가 감소하지 않는 문제 해결하기
2019 iFunFactory Dev Day 10
메시지 로그
* 서버와 클라이언트 간 주고 받는 메시지(패킷)을 로그로 출력
* 눈에 보이지 않는 동작을 확인할 수 있음
Level 0 은 사용 안함

Level 1 은 메시지 타입만 출력

Level 2 는 메시지 타입과 내용도 출력
2019 iFunFactory Dev Day 11
메시지 로그
<시연>
주변 캐릭터(=클라이언트)에게만 “moved” 메시지가
전송되는지 확인하기
2019 iFunFactory Dev Day 12
이벤트 프로파일링
* 이벤트 단위의 성능 측정
* 이벤트 큐, 이벤트 핸들러 함수, ORM 접근(I/O) 등으로 세분화하여 성능을 살펴볼 수 있음
2019 iFunFactory Dev Day 13
이벤트 프로파일링
<src/MANIFEST.town.json>
2019 iFunFactory Dev Day 14
이벤트 프로파일링
<CURL 명령으로 이벤트 프로파일링 요청하기>
2019 iFunFactory Dev Day 15
이벤트 프로파일링
<시연>
이벤트 프로파일링으로 느린 이벤트 확인하기
2019 iFunFactory Dev Day 16
CPU 프로파일링
* 어떤 함수가 CPU 를 많이 사용하고 있는지 파악
* 시각화 결과값으로 분석이 쉬움
2019 iFunFactory Dev Day 17
CPU 프로파일링
<시연>
CPU 프로파일링으로 느린 이벤트 확인하기
경기도 성남시 분당구 대왕판교로 660, 유스페이스1 B동 606호
info@ifunfactory.com 070-4923-6566www.ifunfactory.com

More Related Content

2019 아이펀팩토리 Dev Day 세션5 아이펀엔진으로 만든 게임 성능 분석 및 디버깅 - 남승현

  • 1. 2019 iFunFactory Dev Day ‘아이펀 엔진으로 MO 게임 서버 개발하기’
  • 2. ‘아이펀 엔진으로 MO 게임 서버 개발하기’ 2019 iFunFactory Dev Day 2 남승현 프로그래머 성능 분석 및 디버깅
  • 3. 2019 iFunFactory Dev Day 목차 • Minidump • Debugger • 메시지 로그 • 이벤트 프로파일링 • CPU 프로파일링 3
  • 4. 2019 iFunFactory Dev Day 4 Minidump * 서버가 크래시할 때 자동으로 생성되며 Stacktrace 를 출력 * 크래시하는 위치를 가장 빠르게 알 수 있음
  • 5. 2019 iFunFactory Dev Day 5 Minidump <시연> 서버가 크래시하는 문제 해결하기
  • 6. 2019 iFunFactory Dev Day 6 Debugger * VS, VS Code, GDB * Debugger 로 게임 서버를 실행할 수 있음 * 실행중인 게임 서버를 Debugger 에 붙일 수 있음 * 프로세스가 멈추기 때문에 타임아웃 관련 설정을 변경해야함
  • 7. 2019 iFunFactory Dev Day 7 Debugger <src/MANIFEST.town.json>
  • 8. 2019 iFunFactory Dev Day 8 Debugger <GDB 로 게임 서버 실행하기> <실행중인 게임 서버를 GDB 에 붙이기>
  • 9. 2019 iFunFactory Dev Day 9 Debugger <시연> Visual Studio Code 를 사용하여 공격을 해도 HP 가 감소하지 않는 문제 해결하기
  • 10. 2019 iFunFactory Dev Day 10 메시지 로그 * 서버와 클라이언트 간 주고 받는 메시지(패킷)을 로그로 출력 * 눈에 보이지 않는 동작을 확인할 수 있음 Level 0 은 사용 안함
 Level 1 은 메시지 타입만 출력
 Level 2 는 메시지 타입과 내용도 출력
  • 11. 2019 iFunFactory Dev Day 11 메시지 로그 <시연> 주변 캐릭터(=클라이언트)에게만 “moved” 메시지가 전송되는지 확인하기
  • 12. 2019 iFunFactory Dev Day 12 이벤트 프로파일링 * 이벤트 단위의 성능 측정 * 이벤트 큐, 이벤트 핸들러 함수, ORM 접근(I/O) 등으로 세분화하여 성능을 살펴볼 수 있음
  • 13. 2019 iFunFactory Dev Day 13 이벤트 프로파일링 <src/MANIFEST.town.json>
  • 14. 2019 iFunFactory Dev Day 14 이벤트 프로파일링 <CURL 명령으로 이벤트 프로파일링 요청하기>
  • 15. 2019 iFunFactory Dev Day 15 이벤트 프로파일링 <시연> 이벤트 프로파일링으로 느린 이벤트 확인하기
  • 16. 2019 iFunFactory Dev Day 16 CPU 프로파일링 * 어떤 함수가 CPU 를 많이 사용하고 있는지 파악 * 시각화 결과값으로 분석이 쉬움
  • 17. 2019 iFunFactory Dev Day 17 CPU 프로파일링 <시연> CPU 프로파일링으로 느린 이벤트 확인하기
  • 18. 경기도 성남시 분당구 대왕판교로 660, 유스페이스1 B동 606호 info@ifunfactory.com 070-4923-6566www.ifunfactory.com