[NDC] 안드로이드에서 유니티 프로젝트 네이티브 프로파일링 삽질기
NDC 넥슨 · YouTube
AI 핵심 요약
저사양 Android 기기에서만 Unity 게임의 성능이 크게 떨어졌지만, Unity Profiler의 계측 오버헤드와 기존 네이티브 프로파일러의 제약 때문에 병목을 찾기 어려웠다. 발표자는 Android NDK의 Simpleperf를 Unity 앱에 적용해 샘플 데이터를 수집하고, Linux의 FlameGraph로 호출 스택과 비용을 시각화하는 방법을 정리했다. 프로파일링 결과 오브젝트 풀에서 이미 있는 컴포넌트를 다시 추가하는 작업이 병목임을 찾아 수정했고, 발표에서 소개한 사례에서는 프레임이 약 3에서 20으로 개선됐다. 네이티브 프로파일링 도구가 익숙하지 않더라도 수집·분석 과정을 직접 연결하면 Unity 프로젝트의 실제 병목을 확인할 수 있다는 점을 보여줬다.
- 샘플링 프로파일러는 코드를 계측하지 않아 성능 왜곡이 적지만, 의미 있는 결과를 얻으려면 충분한 실행 시간이 필요하다.
- Unity Profiler는 렌더링·메모리 등 전반을 살피는 데 유용하지만, 계측 오버헤드가 크고 특정 네이티브 병목을 찾는 데 한계가 있다.
- Android NDK의 Simpleperf는 앱을 실행하며 네이티브 스택을 샘플링할 수 있고, 수집이 중단되는 경우 파일 크기와 데이터 수를 확인해야 한다.
- Unity 오브젝트 풀링을 쓰더라도 객체를 꺼낼 때 불필요하게 같은 컴포넌트를 다시 추가하지 않는지 확인한다.
소개
NDC 2018 [안드로이드에서 유니티 프로젝트 네이티브 프로파일링 삽질기] 세션 공유드립니다. 상세 내용은 NDC Replay 홈페이지를 참고 부탁드려요. 😊 1. 발표자 성함 : 하재승 2. 발표자 소개 : 넥슨 라이브인프라실에서 라이브 게임들에 필요할 기반 기술들을 쌓아 올리는 중. 무점검 실시간 게임 정보 수집 툴 ZERO 개발(NDC2017). 배포후 프로파일링 툴 JYP 개발(NDC2015). 던전앤파이터 최적화 담당(NDC2014), NCSOFT 서버 버너(NDC2011) 등 툴 및 프레임워크 개발, 빅샷 개발, 메틴2 개발. 3. 세션 소개 : 만들어진 게임을 최적화하기 위해선서 프로파일링이 필수적인 과정입니다. 어떤 코드 영역에서 불필요하게 시간을 소요하는지 파악하고, 우선적으로 개선할 병목지점을 찾아내어 같은 노력으로 더 큰 효과를 볼 수 있습니다. 하지만 안드로이드에서 Unity+IL2CPP이나 Unreal 등 C++로 만들어진 네이티브 앱에 사용할 ...
비슷한 학습 자료
컨퍼런스 NDC
NDC 2019 [블리자드 모든 팀을 위한 플랫폼 중립적인 공용 라이브러리 만들기] 세션 공유드립니다. 상세 내용은 NDC Replay 홈페이지를 참고 부탁드려요. 😊 1. 발표자 성함 : 전이삭 2. 발표자 소개 : 현재 블리자드 엔터테인먼트 베틀넷 부문 데이터 팀에서 빅데이터 시스템을 개발하고 있습니다. 2001년 부터 개발 일을 시작해서 주로 C++를 이용한 패키지 소프트웨어 개발, 온라인 게임, 게임 플랫폼 개발 업무를 해왔습니다. 주요 프로젝트로는 나모 웹 에디터, 나모 핸드스토리, 한게임 바둑, 월드 오브 워크래프트 게임 런처, 베틀넷 데스크탑 앱, 오버워치 게임 클라이언트 등이 있습니다. NDC 2017에서 '더 좋은 코드를 위한 함수형 프로그래밍', NDC 2018에서 '게임 서비스 플랫폼을 지탱하는 알고리즘' 세션을 발표했습니다. 3. 세션 소개 : 최근 3년간 블리자드 모든 게임 팀에 적용해온 윈도우즈, 맥오에스, 리눅스, 콘솔, 모바일 등 모든 게임 플랫...
프로그래밍 언어
컨퍼런스 NDC
NDC 2019 [그치만 이렇게 하지 않으면 A/B 테스트 시켜주지 않는걸] 세션 공유드립니다. 상세 내용은 NDC Replay 홈페이지를 참고 부탁드려요. 😊 1. 발표자 성함 : 이현섭, 김신영 2. 발표자 소개 : [이현섭] 데이터의 활용에 관심이 많은 Machine Learning Engineer입니다. PUBG의 Machine Learning 팀에서 A/B 테스트 플랫폼을 개발하고 있습니다. [김신영] 현재 PUBG Machine Learning 팀에서 코딩 외의 모든것을 담당하고 있습니다. 과거 중소기업 몇군데를 거치며 통계 및 알고리즘 및 가끔 서비스 개발도 했습니다. 3. 세션 소개 : 데이터 기반 의사결정을 위해 A/B 테스트를 수행하고자 하는 수요에 힘입어 대규모 서비스에서 활용 가능한 A/B 테스트 플랫폼을 구축한 경험을 공유하고자 합니다. 기존의 파이프라인을 통해 수집된 데이터를 활용할 수 없어 데이터를 직접 수집, 적재, 분석하는 파이프라인을 구축...
프로덕트 지표 · 실험
컨퍼런스 NDC
[NDC] 리니지M 모바일게임의 호환성 테스트와 자동화 적용
컨퍼런스 NDC
NDC 2019 [리니지M 모바일게임의 호환성 테스트와 자동화 적용] 세션 공유드립니다. 상세 내용은 NDC Replay 홈페이지를 참고 부탁드려요. 😊 1. 발표자 성함 : 이호승, 홍상영 2. 발표자 소개 : [이호승] 현재 리니지M과 더불어 서비스 및 개발 중인 모바일게임의 호환성 테스트 업무를 담당하고 있습니다. 다양한 모바일기기에 대한 호환성 테스트와 테스트 자동화를 활용해 진행하는 호환성 테스트에 대해 소개하고자 합니다. 실제 테스트 자동화를 이용한 호환성 테스트 영상과 더불어 테스트 자동화 적용 후 실무에 활용하면서 느낀 점들을 공유할 예정입니다. [홍상영] 현재 테스트 자동화 프레임워크 개발팀에 근무 중입니다. 모바일게임 테스트 자동화 구조와 기반 기술에 대한 소개를 하고자 합니다. 동시에 여러 대의 모바일기기에서 테스트를 수행하기 위해 적용된 기술들에 대한 소개와 프레임워크 개발에서 실무 활용까지의 과정에서 겪었던 경험을 공유하고자 합니다. 3...
소프트웨어 테스트
컨퍼런스 NDC
NDC 2019 유니티 ECS & Job System 분석 및 적용 - 타일 맵 기반 게임 적용 사례 세션 공유드립니다. 상세 내용은 NDC Replay 홈페이지를 참고 부탁드려요. 😊 1. 발표자 성함 : 함동기 2. 발표자 소개 : 유니티로 모바일 시뮬레이션 게임을 만들고 있습니다. 이전에는 도미네이션즈 중국 런칭 및 라이브 업무를 담당했습니다. NDC 14에서 Cocos2d-x 관련 내용으로 발표를 했고 같은 주제로 책을 쓰기도 했습니다. 3. 세션 소개 : 유니티의 새로운 개발 패러다임인 ECS(Entity Component System)와 C# Job System의 개념과 활용 방법, 개발 중인 프로젝트에 적용한 사례를 다룹니다. 현재 타일 맵 기반의 시뮬레이션 게임을 개발하고 있습니다. 게임 특성상 플레이 중 비슷한 타입의 오브젝트들이 무수히 생성되어 움직이고 또 사라집니다. 기존의 유니티 개발 방식으로는 원하는 퍼포먼스를 얻기 힘들었습니다. 이에 기존 코드를...
프로그래밍 언어 게임 프로그래밍
컨퍼런스 NDC
[NDC] 소프트웨어 2.0을 활용한 게임 어뷰징 검출
컨퍼런스 NDC
NDC 2018 [소프트웨어 2.0을 활용한 게임 어뷰징 검출] 세션 공유드립니다. 상세 내용은 NDC Replay 홈페이지를 참고 부탁드려요. 😊 1. 발표자 성함 : 김정주 2. 발표자 소개 : 현재 웹젠에서 TD로서 게임 로그 수집 및 분석을 담당하고 있습니다. 이전에는 NHN과 NPLUTO에서 게임 엔진 개발 및 기술 지원 역할을 하였습니다. 지난 NDC 2016에서 게임 어뷰징 검출, PyConKR 2017에서 강화학습 관련 내용을 발표한 바 있습니다. 이번 발표에서는 참관객 여러분들에게 소프트웨어 2.0의 개념과, 이를 이용해 좀 더 고도화된 게임 어뷰징 검출 방법을 소개해 드릴 예정입니다. 3. 세션 소개 : 최근 기계학습과 딥러닝의 대두는 인공지능에 대한 다양한 우려를 불러일으키고 있습니다. 그러나, 저는 개인적으로 인공지능을 데이터를 학습하여 기능을 구현하는 진보된 형태의 소프트웨어 패러다임 정도로 보고 있습니다. 딥러닝의 대가 안드레이 카패시의 소프트웨어...
딥러닝 · 머신러닝
컨퍼런스 NDC
NDC 2018 [개발 자동화와 그 적들 - '블레이드 2' 및 다른 사례들 소개] 세션 공유드립니다. 상세 내용은 NDC Replay 홈페이지를 참고 부탁드려요. 😊 1. 발표자 성함 : 최우성 2. 발표자 소개 : 16 년차 개발자. 프로그래머와 프로젝트 관리자와 AI 관련 업무를 오가며 게임 업계에 서식하고 있다. 현재는 블레이드2 에서 서버 프로그래밍 및 개발 생산성 향상을 위한 작업들을 하고 있다. 그 이전에는 블레이드 앤 소울, 로스트 사가, 다함께 차차차2, 불멸의 전사 등을 PM이나 프로그래머로서 개발 했다. 그리고 소개한 프로젝트 보다 더 많은 수의 빛을 보지 못한 프로젝트들에도 참여 했었다. 3. 세션 소개 : 개발환경이 발전하고 프로젝트들의 사이클이 짧아지면서, 개인 및 팀의 생산성은 또다른 키워드가 되고 있습니다. 특히 모바일 시대에 도래하면서 이런 현상은 더욱 가속화되어가고 있는 상황입니다. 블레이드 2 (서버)를 개발하면서 신경 썼던 부분 중 하...
데브옵스 · 인프라 개발 도구