Replies: 4 comments
-
주로 메모리 릭을 확인할 때 사용했는데, 매우 다양한 기능들이 있었군요 !! |
Beta Was this translation helpful? Give feedback.
0 replies
-
Beta Was this translation helpful? Give feedback.
0 replies
-
코드 리팩토링을 하면서 Instrument를 사용해보려고 관련 정보를 찾아보고있었는데 |
Beta Was this translation helpful? Give feedback.
0 replies
-
예전에 Objective-C와 unityFramwork 사용할때 unityFramwork의 메소드 까지 다 표시해줘서 도움 많이 됬습니다. 적극 활용 강추합니다. !! |
Beta Was this translation helpful? Give feedback.
0 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
-
내가 만든 앱이 버벅거리거나, 앱을 구동하면 핸드폰이 너무 뜨거워지나요? Instrument는 구현과 함께, 또는 그 이후에 최적화를 통해 이런 문제를 해결할 수 있도록 돕는 도구가 있습니다.
이 글에서는 Paul Hudson 씨의 예제와 기본 개념을 버무려 Instruments의 기본적인 기능에 대해 정리하였습니다. 기본적인 개념을 익히고, 이후 다양한 instruments들을 체험해보시길 기대합니다(저도 알려주세요👀)
About Instruments
Instruments 여는 방법
Xcode
Dock
Launch Terminal (in
/Applications/Utilities/
).Run the following command:
open /Applications/Xcode.app/Contents/Applications/Instruments.app
우리 앱의 View는 잘 지내고 있을까요?
Instrument UI를 익히고 싶다면 아래 아티클을 참고해주세요 :)
[Xcode] Instruments (1) - Tool
SwiftUI Instrument
실행
View Body
위에 이미지에서 MainView는 그리는 횟수에 비해 너무 많은 Avg Duration을 가지고 있어서 심각한 상태입니다😱 (많이 버벅거리더라구요..)
View Property
위 타임라인의 피크를 찍은 부분은 SettingView에서 토클을 반복해서 on/off를 점검했던 부분입니다. 그 부분에서 SettingView가 여러번 렌더가 되었군요. 근데 평균시간이 812.55마이크로초가 소요되어서, 최적화가 필요해보이네요! 👀
Core Animation Commits
Core Animation은 그래픽 렌더링 및 애니메이션 인프라로, 앱의 뷰와 시각적 애니메이션 작업을 돕는 기술입니다. 우리가 애니메이션을 할 때 처음과 끝의 상태만 설정하면, Core Animation은 그 정보를 받아서 자동으로 내장된 그래픽 하드웨어에 그리는 작업을 넘겨서 렌더링 속도를 높임으로 CPU에 부담을 주지 않고 앱 속도 저하를 방지할 수 있습니다.
Core Animation이 더 궁금하다면
Time Profiler
왼쪽 패널에는 만들어진 모든 Thread를 확인할 수 있습니다.
오른쪽 패널에는 가장 오랜 시간이 걸린 코드를 보여줍니다. 여기서 흰색으로 하이라이트 된 부분이 개발자가 작성한 코드이고 나머지는 시스템 코드입니다.
하단에 Call Tree에서 Hide System Libraries를 토글하면 개발자가 작성한 부분에 대해서만 확인할 수 있습니다.
Invert Call Tree를 토글하면 상세한 코드부터 확인할 수 있습니다. 시간이 오래걸린 부분을 더블클릭하면 문제가 있는 코드를 바로 확인할 수 있습니다.
정리하며
References
instruments
How to use Instruments to profile your SwiftUI code and identify slow layouts - a free SwiftUI by Example tutorial
Core Animation
About Core Animation
다른 Instrument들도 체험해보시고, 어떤 기능들이 있는지 댓글로 남겨주시면 서로 Instrument로 앱의 성능을 최적화하는 능력을 키울 수 있을 것 같습니다 :)
Beta Was this translation helpful? Give feedback.
All reactions