CPU 사용량 및 상호작용 타임라인을 보완하기 위해 스레드 섹션에는 앱과 시스템에서 실행하는 모든 호출의 프레임이 표시됩니다. 다음은 호출 스택 샘플을 탐색하기 위한 몇 가지 팁입니다.
관심 있는 스레드를 펼치고 단축키를 사용하여 스택 프레임을 탐색합니다. 스택 프레임을 클릭하여 분석 창에서 이벤트 및 관련 호출에 관한 세부정보를 확인합니다.
특정 유형의 스택 프레임으로 필터링하려면 프레임 접기를 클릭하고 숨길 프레임 유형을 선택합니다. 프레임을 접으면 스레드 및 분석 섹션에서 모두 삭제됩니다. 조사에 따라 Java 가상 머신(예: android::AndroidRuntime::start 및 art::{...})과 시스템 커널 (예: [kernel.kallsyms]+{offset})의 프레임을 축소할 수 있습니다. 일반적으로 이는 [kernel.kallsyms], /apex/, /system/*과 관련된 프레임을 축소하는 것과 같습니다.
자바/Kotlin 프로그램은 일반적으로 자바 가상 머신을 통해 실행되므로 Android 스튜디오에서 자바/Kotlin 프로그램의 호출 스택을 수집할 때 호출 스택에는 일반적으로 자바/Kotlin 코드뿐만 아니라 프로그램 자체를 실행하고 프로그램이 시스템 및 하드웨어와 통신하는 데 필요한 네이티브 코드도 포함됩니다.
스택 프레임과 연결된 소스 코드로 이동하려면 프레임을 마우스 오른쪽 버튼으로 클릭하고 소스 코드로 이동을 클릭합니다.
내부적으로 Android 스튜디오는 simpleperf를 사용하여 앱의 네이티브 코드를 추적합니다. 특정 기기 CPU를 샘플링하거나 샘플링 기간을 매우 정확하게 지정하는 등 Simpleperf의 추가 옵션을 지정하려면 명령줄에서 simpleperf를 사용하면 됩니다.
이 페이지에 나와 있는 콘텐츠와 코드 샘플에는 콘텐츠 라이선스에서 설명하는 라이선스가 적용됩니다. 자바 및 OpenJDK는 Oracle 및 Oracle 계열사의 상표 또는 등록 상표입니다.
최종 업데이트: 2025-07-27(UTC)
[[["이해하기 쉬움","easyToUnderstand","thumb-up"],["문제가 해결됨","solvedMyProblem","thumb-up"],["기타","otherUp","thumb-up"]],[["필요한 정보가 없음","missingTheInformationINeed","thumb-down"],["너무 복잡함/단계 수가 너무 많음","tooComplicatedTooManySteps","thumb-down"],["오래됨","outOfDate","thumb-down"],["번역 문제","translationIssue","thumb-down"],["샘플/코드 문제","samplesCodeIssue","thumb-down"],["기타","otherDown","thumb-down"]],["최종 업데이트: 2025-07-27(UTC)"],[],[],null,["# Sample the callstack\n\nCallstacks are useful for identifying *CPU hot spots*, or sections of code that\ntake a long time to execute. Callstacks help you understand which part of the\ncode has been executed, and why it was invoked.\n| **Note:** To sample the callstack, you must deploy your app to a device running Android 8.0 (API level 26) or higher.\n\nCallstack sample overview\n-------------------------\n\nTo sample the callstack,\n[select the **Find CPU Hotspots (Callstack Sample)** task](/studio/profile#start-profiling)\nfrom the Android Studio Profiler **Home** tab. After the recording is parsed you\nsee the following visuals:\n\nTo supplement the\n[**CPU Usage** and **Interactions** timelines](/studio/profile/cpu-profiler),\nthe **Threads** section shows frames for every call that your app and the system\nmakes. Here are some tips for navigating the callstack sample:\n\n- Expand the thread of interest and use [keyboard shortcuts](/studio/profile/cpu-profiler#ui-shortcuts) to navigate the stack frames. Click a stack frame to get details about the event and related calls in the **Analysis** pane.\n- To filter to certain types of stack frames, click **Collapse frames** and check the frame types you want to hide. Collapsing frames removes them from both the **Threads** and **Analysis** sections. Depending on your investigation, you might want to collapse frames from the Java virtual machine (for example `android::AndroidRuntime::start` and `art::{...}`), and the system kernel (for example `[kernel.kallsyms]+{offset}`). Usually this corresponds to collapsing frames related to `[kernel.kallsyms]`, `/apex/`, and `/system/*`.\n\nBecause a Java/Kotlin program typically executes through a Java virtual machine,\nwhen Android Studio collects the callstack for a Java/Kotlin program, the\ncallstack usually includes not just the Java/Kotlin code but also the native\ncode required to run the program itself and for the program to talk with the\nsystem and hardware.\n\n- To jump to the source code associated with a stack frame, right-click the frame and click **Jump to source**.\n- To highlight the stack frame associated with an event in the event table, click the event.\n\nFor information about the other visuals, see\n[Record a system trace](/studio/profile/cpu-profiler) and the\n[chart glossary](/studio/profile/chart-glossary/flame-chart).\n\nSample native code using the command line\n-----------------------------------------\n\nInternally, Android Studio uses [simpleperf](/ndk/guides/simpleperf) to trace\nyour app's native code. If you want to specify additional options for\nSimpleperf, such as sampling specific device CPUs or specifying sampling\ndurations at a high accuracy, you can\n[use simpleperf from the command line](https://android.googlesource.com/platform/system/extras/+/master/simpleperf/doc/README.md)."]]