ETTrace는 개방형입니다
홈페이지홈페이지 > 블로그 > ETTrace는 개방형입니다

ETTrace는 개방형입니다

Apr 09, 2023

InfoQ 홈페이지 뉴스 ETTrace는 성능 최적화 단순화를 목표로 하는 iOS용 오픈 소스 프로파일러입니다.

2023년 6월 7일 2분 분량의 글

~에 의해

세르히오 데 시몬

최근 iOS 앱용 여러 분석 도구 제조업체인 Emerge Tools에서 오픈 소스로 제공한 ETTrace는 직관적인 시각화와 간단한 작동을 제공하여 iOS 성능 프로파일링을 단순화하는 것을 목표로 합니다.

ETTrace는 iOS 앱의 성능 최적화를 위한 사실상의 표준 솔루션인 Xcode 통합 타일 프로파일러의 치열한 경쟁에 직면해 있습니다. 그러나 Emerge Tools 엔지니어 Noah Martin은 Xcode Time Profiler에서 개선할 점이 많이 있다고 말합니다.

Emerge에서 대규모 앱을 작업하는 많은 엔지니어들과 이야기를 나눴는데 피드백은 모두 같았습니다. Time Profiler는 불안정하고 느릴 수 있습니다. 이 기사의 스크린샷을 가져오는 중에도 여러 번 작동이 중단되어 강제 종료해야 했습니다. 기호화는 추적이 생성되고 주소만 표시되고 함수 이름은 표시되지 않는 문제가 되는 경우가 많습니다.

반대로 그는 ETTrace가 플레임 그래프를 사용하여 성능 병목 현상을 쉽게 식별하고 로컬에서 실행되는 앱을 프로파일링하는 사용하기 쉬운 명령줄 도구를 제공한다고 주장합니다. ETTrace를 iOS 앱에 통합하는 것은 Objective-C 프레임워크를 연결하고 명령줄에서 ettrace를 실행하여 원할 때 프로파일링을 시작하고 중지하는 것만큼 쉽습니다. 또한 ETTrace는 Info.plist ETTraceRunAtStartup 키를 YES로 설정하여 앱이 시작된 직후 추적을 시작할 수 있는 가능성도 지원합니다.

프레임워크는 추적 파일에 고정된 간격으로 앱 스택을 기록한 다음 시각화를 만드는 데 사용됩니다. ETTrace는 UI 렌더링을 담당하고 절대 차단해서는 안 되기 때문에 iOS 앱에서 가장 시간에 민감한 부분인 메인 스레드만 샘플링합니다. 그런 다음 추적을 Emerge Tools 웹 사이트의 공개 페이지에 업로드하여 Flame 그래프를 생성할 수 있습니다. 또한 두 개의 추적을 비교하여 두 개의 서로 다른 앱 실행을 비교하고 예를 들어 기능이 어떻게 개선되거나 회귀되었는지 검사할 수 있습니다.

ETTrace의 또 다른 장점은 성능 테스트 기능을 제공하는 Emerge Tools Performance Analysis를 사용하여 CI 파이프라인에 통합할 수 있다는 것입니다. 사례 연구로서 그는 Swift 프로토콜 적합성 테스트와 관련된 병목 현상을 식별하고 제거하여 iOS 앱 실행 시간을 60% 단축하기 위해 Doordash가 수행한 작업을 언급합니다.

Flame 그래프는 가장 자주 사용되는 코드 경로를 쉽게 식별할 수 있도록 계층적 데이터를 시각화하는 방법입니다. 각 노드, 즉 함수는 해당 함수에 사용된 CPU 시간의 상대적 측정값을 나타내는 너비를 갖는 프레임으로 표시됩니다.

ETTrace는 GitHub에서 다운로드할 수 있습니다.

도메인 전문가로부터 새로운 트렌드와 사례를 알아보세요. QCon New York(2023년 6월 13~15일)에서 기술을 레벨업하세요!

InfoQ에 글을 쓰면 많은 문이 열리고 직업 기회가 늘어납니다. 나를 위한. 저는 제가 다룬 주제에 대해 더 많은 것을 배우기 위해 전문가 및 사고 리더들과 깊이 소통할 수 있었습니다. 또한 내가 배운 내용을 더 넓은 기술 커뮤니티에 전파하고 기술이 실제 세계에서 어떻게 사용되는지 이해할 수 있습니다.

저는 올해 초 InfoQ의 기여자 프로그램을 발견했고 그 이후로 즐겁게 지냈습니다! InfoQ의 P2P 검토 시스템은 전 세계 소프트웨어 개발자 커뮤니티와 학습 내용을 공유할 수 있는 플랫폼을 제공했을 뿐만 아니라 내 작문 능력도 크게 향상시켰습니다. . 소프트웨어 전문 지식을 공유할 수 있는 장소를 찾고 있다면 InfoQ에 기여해 보세요.

저는 기술에 대한 최신 정보를 얻기 위해 InfoQ .NET 대기열에 대한 뉴스를 작성하기 시작했지만 이를 통해 훨씬 더 많은 것을 얻었습니다. 지식이 풍부한 사람들을 만났고, 세계적인 인지도를 얻었으며, 글쓰기 실력도 향상되었습니다.