Traceview: bu nədir, Android izləmə və profilləşdirmə aləti

Müəllif: IT Sectr Dərc olunub: 2026-03-30 Oxuma vaxtı: 9 dəq

Traceview — Android Studio-ya daxil edilmiş qrafik izləmə alətidir, tətbiq metodlarının icrasını zaman və CPU resursları baxımından qeyd edir və vizuallaşdırır. Sistematik prosesləri nüvə səviyyəsində göstərən Systrace-dən fərqli olaraq, Traceview istifadəçi girişindən UI renderinə qədər zəncir boyunca çağırılan tətbiq daxilindəki Java və Kotlin metodlarına fokuslanır. Google, 2024 məlumatlarına görə, alət fərdi çağırışlar səviyyəsində performans darboğazlarını tapmağa və buraxılışa qədər kodu optimallaşdırmağa imkan verir.

Əsas məqamlar

  • Traceview — System Tracing əsasında işləyən Android Studio-da Android metodlarının qrafik profilləşdiricisi
  • İzləmə hər metodun müddətini, çağırış sayını və CPU vaxtını qeyd edir
  • Zaman xətti Traceview çağırışları iplərin yuvalanması ilə xronoloji ardıcıllıqda göstərir
  • Profilləşdirmə yavaş metodları, lazımsız ayırmaları və bloklamaları tapmağa kömək edir
  • İnteqrasiya Android Profiler və Debug.startMethodTracing API ilə çevik tutma üçün

Android-də Traceview nədir

Traceview — Android Studio-ya daxil edilmiş qrafik profilləşdiricidir, Android tətbiq metodlarının icra izlərini zaman xətti və çağırış cədvəli şəklində göstərir. Android SDK-nın tərkib hissəsidir və Android Studio 3.0-dan başlayaraq Android Profiler, həmçinin dmtracedump komanda sətri aləti vasitəsilə əlçatandır.

Alətin məqsədi

Traceview-in əsas vəzifəsi proqramçıya ən çox CPU vaxtı sərf edən metodları tapmağa kömək etməkdir. Sadə loglamadan fərqli olaraq, Traceview hər bir metodun giriş və çıxış dəqiq vaxtını qeyd edir, Call Chart və Top-Down ağacı qurur ki, bu da vizual olaraq performans anomaliyalarını aşkar etməyə imkan verir. Alət xüsusilə UI ipini profilləşdirərkən faydalıdır, burada 16 ms gecikmə kadrın itirilməsinə səbəb olur.

Tarix və inkişaf

Traceview Android SDK-nın ilk versiyalarında .trace fayllarına baxmaq üçün müstəqil alət kimi meydana çıxdı. Android Studio 3.0 (2017) buraxılışı ilə Android Profiler-in bir hissəsi oldu, CPU, yaddaş və şəbəkənin canlı zaman xətti ilə inteqrasiya qazandı. Google I/O 2018 məlumatlarına görə, Android Studio komandası systraceperfetto vasitəsilə yerli kod dəstəyi əlavə edərək profilləşdiricini inkişaf etdirməyə davam edir. Android Studio-nun cari versiyalarında Traceview Perfetto formatı üzərində işləyir, lakin klassik .trace ilə geriyə uyğunluğu qoruyur.

Traceview necə işləyir

Traceview Android Runtime (ART) daxilində System Tracing mexanizmindən məlumat alır. Tətbiq izləmə aktivləşdirilmiş halda işə salındıqda, ART hər bir icra olunan metodun başlanğıc və bitmə vaxtı stampını, o cümlədən sinif adı, metod adı və ip ID-sini buferə yazır.

kotlin
// Tətbiq kodunda tracing-i başlat
Debug.startMethodTracing("app_trace")

// Profilləşdirmə üçün kritik kod bölməsi
loadHeavyData()

// Tracing-in dayandırılması — fayl cihaza saxlanılıb
Debug.stopMethodTracing()

System Tracing ART virtual maşını səviyyəsində işləyir və hər bir metod çağırışını mikrosaniyə dəqiqliyi ilə qeyd edir. Məlumatlar tətbiqin öz performansına təsiri minimuma endirmək üçün dairəvi buferə yazılır. İzləmə dayandırıldıqdan sonra bufer cihazın daxili yaddaşında .trace faylına boşaldılır.

.trace fayl formatı

.trace faylı format versiyası və başlanğıc vaxtı ilə başlıq ehtiva edir, ardınca hər bir çağırış haqqında qeydlər gəlir: thread ID, method ID, giriş vaxtı stampıçıxış vaxtı stampı. Android Studio avtomatik olaraq .trace faylını yükləyir və iki əsas görünüş qurur: xronologiya üçün Timeline Panel və çağırış iyerarxiyası üçün Profile Panel. Standart olaraq maksimum bufer ölçüsü 8 MB-dır, lakin Debug.startMethodTracing(filename, maxSize) vasitəsilə artırıla bilər.

Traceview-in əsas imkanları

Traceview bir-birini tamamlayan bir neçə məlumat görünüşü təqdim edir, hər biri performans analizində öz vəzifəsini həll edir.

Call Chart (çağırış qrafiki)

Call Chart — üfüqi zaman xəttidir, burada hər bir ip ayrı yolda göstərilir. Metodlar rəngli düzbucaqlılar şəklində göstərilir: düzbucaqlının eni icra müddətinə mütənasibdir, yuvalanma isə çağırış iyerarxiyasını əks etdirir. Əgər metod başqa bir metodu çağırıbsa, alt düzbucaqlı valideyn daxilində çəkilir. Bu vizuallaşdırma hansı əməliyyatların ipi blokladığını dərhal görməyə imkan verir.

Top-Down və Bottom-Up ağacları

Top-Down ağacı metodun bütün yuvalanmış çağırışları ilə icra müddətini göstərir — Inclusive Time. Bottom-Up ağacı isə əksinə, bu metodu hansı valideyn metodların çağırdığını göstərir — ağır əməliyyatın mənbəyini tapmaq üçün faydalıdır. Inclusive və Exclusive Time arasındakı fərq kritikdir: metod özü sürətli işləyə bilər, lakin yavaş alt metodu çağıra bilər və bu yalnız Inclusive Time-da görünür.

Axtarış və filtrləmə

Traceview metod adı, paket və ya sinif üzrə axtarışı dəstəkləyir. Nəticələr zaman xəttində vurğulanır, Profile Panel-də isə yalnız tapılan metodlar üzrə statistika göstərilir. İplər üzrə filtrləmə də mövcuddur — fon iplərinin göstərilməsini söndürüb gecikmələrin ən kritik olduğu əsas (UI) ipinə diqqət yetirmək olar.

MetrikaTəsvirVahid
Inclusive TimeMetodun + bütün alt çağırışlarının ümumi vaxtıμs / ms
Exclusive TimeYalnız metodun öz vaxtı, alt çağırışlar olmadanμs / ms
Calls + RecurRekursiya nəzərə alınmaqla çağırış sayıədəd
CPU TimeCPU-da həqiqətən sərf olunan vaxt (gözləməsiz)μs / ms
Real TimeMetoda girişdən çıxışa qədər təqvim vaxtıμs / ms

Məlumat ixracı

Traceview izləri CSV formatında ixrac etməyə imkan verir — cədvəllərdə sonrakı analiz və ya qrafiklərin qurulması üçün. Android Studio-da zaman xəttinin seçilmiş fraqmentini şəkil kimi köçürmək də mümkündür — bug-report və ya sənədləşdirməyə yapışdırmaq üçün. CI/CD üçün cmdline-tools vasitəsilə Perfetto formatında ixrac mövcuddur.

Android Studio-da Traceview-dən necə istifadə etməli

Profilləşdirmə Traceview vasitəsilə iki yolla mümkündür: Android Profiler ilə canlı tutma və Debug API-nin proqram vasitəsilə işə salınması. Birinci üsul ad-hoc analiz üçün əlverişlidir, ikincisi — təkrarlana bilən performans testləri üçün.

Android Profiler vasitəsilə tutma

Android Studio-da Profiler nişanını açın (View → Tool Windows → Profiler), cihazı və tətbiqinizin prosesini seçin. CPU seqmentinə klikləyin, sonra "Trace Java Methods" rejimini seçin və Record düyməsini basın. Tətbiq ilə qarşılıqlı əlaqədən sonra Stop düyməsini basın — Traceview avtomatik olaraq qeydə alınmış izi açacaq. Standart yazma müddəti 30 saniyə ilə məhdudlaşır, lakin limit profilləşdirici parametrlərində dəyişdirilə bilər.

Proqram vasitəsilə izləmənin işə salınması

Kodun konkret hissəsinin dəqiq profilləşdirilməsi üçün Debug.startMethodTracingDebug.stopMethodTracing istifadə edin. Fayl context.getExternalFilesDir(null)-un qaytardığı yolda tətbiqin xarici yaddaşında saxlanılır. Tamamlandıqdan sonra .trace faylını Android Studio Device Explorer vasitəsilə kompüterə köçürün, sonra Android Studio-da File → Open vasitəsilə açın.

kotlin
Debug.startMethodTracing(
    "heavy_computation",
    Debug.TRACE_COUNT_ALLOCS
)

processLargeDataset()

Debug.stopMethodTracing()

İzləmə parametrlərinin konfiqurasiyası

Debug.startMethodTracing üç parametr qəbul edir: fayl adı (genişləndirməsiz), maksimum bufer ölçüsü (standart 8 MB) və bayraqlar. TRACE_COUNT_ALLOCS bayrağı obyekt ayırmalarının sayılmasını əlavə edir — yaddaş sızmalarını tapmaq üçün faydalıdır. Yerli kodu profilləşdirmək üçün Traceview uyğun deyil — SimplePerf və ya Perfetto istifadə edin. Uzun testlər (30 saniyədən çox) üçün buferi maxSize parametri ilə 64–128 MB-a qədər artırmaq tövsiyə olunur.

Traceview zaman xəttini oxumaq

Traceview zaman xətti iki paneldən ibarətdir: yuxarı — rəngli çağırış düzbucaqlıları ilə Timeline Panel, aşağı — statistika cədvəli ilə Profile Panel. Timeline Panel iplərin icrasını soldan sağa göstərir, burada hər düzbucaqlı bir metod çağırışıdır. Düzbucaqlının rəngi metod növünə görə kodlaşdırılır: Android sistem çağırışları (yaşıl), tətbiq metodları (mavi), kitabxana çağırışları (narıncı).

Profile Panel-i necə oxumaq

Profile Panel-də hər sətir Inclusive Time, Exclusive Time, Calls + Recur və CPU Time sütunları olan bir metoddur. Cədvəli Inclusive Time-a görə (azalan) sıralayın ki, ən çox vaxt aparan metodları ilk görmək üçün. Əgər yüksək Inclusive Time olan metod aşağı Exclusive Time-a malikdirsə — problem onun alt çağırışlarındadır və ağacı genişləndirmək lazımdır. Məsələn, ListView.getView şəkil yükləmə çağırışı səbəbindən yüksək Inclusive Time-a malik ola bilər.

Darboğazların aşkarlanması

Aşağı CPU Time ilə anormal yüksək Real Time olan metodları axtarın — bu bloklamanı (I/O gözləmə, şəbəkə əməliyyatı, lock contention) göstərir. Yüksək CPU Time olan metodlar alqoritmin optimallaşdırılmasını tələb edir. UI ipi üçün hər metodun 16 ms-ə sığması kritikdir — əgər hansısa çağırış bu həddi keçərsə, tətbiq kadrı itirir və istifadəçi sıçrayış görür. Google tövsiyələrinə görə, bir kadr üçün UI ipində bütün çağırışların ümumi vaxtı 8–10 ms-dən çox olmamalıdır, sistem əməliyyatları üçün ehtiyat qalmalıdır.

Traceview vs Systrace: alətlərin müqayisəsi

Həm Traceview, həm də Systrace Android izləmə alətlərinə aid olsa da, onlar müxtəlif vəzifələri həll edir və profilləşdirmənin müxtəlif mərhələlərində istifadə olunur. Əsas fərq təfərrüat səviyyəsidir: Traceview Java/Kotlin metodları səviyyəsində, Systrace isə sistem prosesləri (CPU, GPU, Binder, SurfaceFlinger) səviyyəsində işləyir.

MeyarTraceviewSystrace
SəviyyəMetodlar (Java/Kotlin)Sistem prosesləri (CPU/GPU/IO)
İnterfeysAndroid Studio ProfilerKomanda sətri + HTML hesabat
MəlumatInclusive/Exclusive TimeCPU yükü, kadr tezliyi
Müddət30 san (Profiler), limitsiz (API)60 saniyəyə qədər
Yerli kodDəstəkləmiratrace işarələri ilə dəstəkləyir

Praktikada hər iki alət bir-birini tamamlayır: əvvəlcə Systrace hansı sistem komponentinin problem yaratdığını müəyyən etməyə kömək edir (məsələn, tez-tez GC və ya Binder bloklamaları), sonra Traceview tətbiq daxilində konkret metoda dərindən baxmağa imkan verir. Android Studio-da hər iki alət Android Profiler-də birləşdirilib — CPU Profiler avtomatik olaraq optimal yazma rejimini seçir. Android 12+ olan cihazlarda Systrace və Traceview Perfetto üzərində işləyir ki, bu da bütün profilləşdirmə növləri üçün vahid məlumat formatı verir.

Traceview ilə kod nümunələri

Səmərəli profilləşdirmə üçün sadəcə izləməni işə salmaq kifayət deyil — tutma nöqtələrini düzgün yerləşdirmək və nəticələri şərh etmək lazımdır. Aşağıda iki praktiki nümunə verilmişdir: RecyclerView siyahısının profilləşdirilməsi və performans testində iki alqoritmin müqayisəsi.

RecyclerView yükləməsinin profilləşdirilməsi

Birinci nümunə — siyahının sürüşdürülməsi zamanı kritik yolun izlənməsi. RecyclerView hər görünən element üçün onBindViewHolder çağırır və əgər bu metod 16 ms-dən uzun icra olunarsa, sürüşdürmə sıçrayışlı olur. onBindViewHolder ətrafında izləmə onun daxilində hansı əməliyyatların vaxt apardığını göstərəcək.

kotlin
class MyAdapter : RecyclerView.Adapter<ViewHolder>() {
    override fun onBindViewHolder(
        holder: ViewHolder,
        position: Int
    ) {
        Debug.startMethodTracing("bind_card_$position")

        holder.bind(items[position])

        Debug.stopMethodTracing()
    }
}

İki alqoritmin müqayisəsi

İkinci nümunə — iki tətbiqin sürət A/B testidir: Glide vasitəsilə şəkil yükləmə əl ilə BitmapFactory ilə müqayisədə. Belə bir iz hər iki strategiyanın Inclusive Time-nı obyektiv müqayisə etməyə və optimalını seçməyə imkan verir. Hər testi isidilmiş cihazda (3–5 dövrədən sonra) və eyni şəraitdə (fon yükü, temperatur) işə salmaq vacibdir.

kotlin
fun compareImageLoadingStrategies() {
    // Test A: Glide
    Debug.startMethodTracing("glide_test")
    loadWithGlide()
    Debug.stopMethodTracing()

    // Test B: BitmapFactory
    Debug.startMethodTracing("bitmap_test")
    loadWithBitmapFactory()
    Debug.stopMethodTracing()
}

İşə saldıqdan sonra hər iki .trace faylını Android Studio-da açın və Profile Panel-də Inclusive Time-nı müqayisə edin. Əgər Glide eyni tapşırıqda 3x az Inclusive Time göstərirsə — bu kitabxananı seçmək üçün obyektiv əsasdır. Toni Conun məlumatlarına görə (Glide yaradıcısı, 2023), kitabxana keşləmə və ip hovuzundan istifadə edir ki, bu da təkrarlanan yükləmələrdə 40%-ə qədər qazanc verir.

Tez-tez verilən suallar

Traceview Android Profiler-dən nə ilə fərqlənir?

Traceview — Android Profiler daxilində iz vizuallaşdırmasının nüvəsidir. Profiler yazmağı işə salmaq və dayandırmaq üçün əlavə interfeys təqdim edir, Traceview isə zaman xətti və metod statistikasının göstərilməsinə cavabdehdir. Hər ikisi eyni .trace məlumat formatından istifadə edir.

Traceview fiziki cihazda istifadə edilə bilərmi?

Bəli, Traceview həm emulyatorda, həm də fiziki Android cihazında işləyir. Bunun üçün USB sazlaması aktiv olmalı və tətbiq debuggable rejimində yığılmalıdır. Fiziki cihazda məlumatlar daha dəqiqdir, çünki emulyator virtualizasiya səbəbindən vaxtları təhrif edə bilər.

.trace faylının maksimum ölçüsü nə qədərdir?

Standart maksimum ölçü 8 MB-dır, lakin Debug.startMethodTracing-də maxSize parametri ilə 256 MB-a qədər artırıla bilər. Uzun profilləşdirmə sessiyaları üçün iz ölçüsünə sərt məhdudiyyəti olmayan Perfetto istifadə edin.

Traceview niyə yerli metodları göstərmir?

Traceview Android Runtime (ART) səviyyəsində işləyir və yalnız idarə olunan Java və Kotlin metodlarını görür. Yerli kodu (JNI vasitəsilə C/C++) profilləşdirmək üçün nüvə səviyyəsində sistem çağırışlarını tutan SimplePerf və ya Perfetto FTrace istifadə edin.

.trace faylını Android Studio olmadan necə açmaq olar?

Android SDK-dan (platform-tools qovluğu) dmtracedump alətindən istifadə edin. O, zaman xətti və cədvəl şəklində statistika ilə HTML hesabatı yaradır. Windows-da işə salma: dmtracedump -h trace.trace > report.html. Alternativ — .trace formatını idxal edən Perfetto UI (ui.perfetto.dev).

Nəticə

  • Traceview — Android Studio-da performans analizi üçün Android metodlarının qrafik profilləşdiricisi
  • Alət ART səviyyəsində işləyir və hər Java/Kotlin metodunun Inclusive və Exclusive Time-nı qeyd edir
  • İki əsas görünüş: zaman xətti üçün Call Chart və iyerarxik statistika üçün Profile Panel
  • Tutma Android Profiler (UI) və ya proqram vasitəsilə Debug.startMethodTracing ilə mümkündür
  • UI ipi üçün hər metod 16 ms-ə sığmalıdır, əks halda tətbiq kadrları itirir
  • Traceview yerli kod üçün uyğun deyil — SimplePerf və ya Perfetto istifadə edin
  • Tam performans mənzərəsi üçün Traceview və Systrace birləşdirmək tövsiyə olunur

Açar təslim mobil tətbiq hazırlayacağıq

IT Sectr 2017-ci ildən startaplar və bizneslər üçün iOS və Android tətbiqləri yaradır. Sizə məsləhət verəcəyik və ən yaxşı həlli təklif edəcəyik.

Layihəni müzakirə et

Həm də oxuyun