Bagaimana cara membuat profil aplikasi Android saya? [Tutup]


93

Saya perlu menemukan di mana letak hambatan di aplikasi Android saya.

Alat atau teknik pembuatan profil apa yang dapat saya gunakan?


Saya tidak terbiasa dengan Android. Dapatkah Anda menjalankan aplikasi di bawah debugger yang dapat Anda interupsi? Jika demikian, metode ini berfungsi: stackoverflow.com/questions/375913/…
Mike Dunlavey

Mmm, menarik. Agak padat karya, tetapi berpotensi berguna untuk menemukan masalah kinerja yang lebih mencolok. Terima kasih.
teedyay

Saya mengerti bagaimana Anda bisa berpikir demikian: stackoverflow.com/questions/2624667/…
Mike Dunlavey

Saat ini Anda dapat melakukan pembuatan profil yang bagus di dalam Eclipse. Lupakan peluncuran TraceView secara mandiri / manual, dll. Saya berharap dapat menulis artikel blog tentang itu, dengan lebih detail. Ping saya jika Anda membutuhkan detail lebih lanjut.
KarolDepka

2
Anda menyarankan ada sesuatu yang lebih baik dari TraceView atau DDMS. Apa itu?
Peri Hartman

Jawaban:


37

Anda dapat menggunakan Traceview. Ini jauh dari ideal, tetapi berhasil. Artikel ini menjelaskan cara menggunakannya.


2
Ketika saya menjalankan ini, dikatakan versi baris perintah tidak digunakan lagi dan kemudian keluar. Apa metode barunya?
gonzobrains


11

Itu tergantung apa yang akan Anda uji.

Jika Anda mengembangkan aplikasi untuk Android, Anda harus mencoba kelas TimingLogger. Lihatlah artikel ini yang menjelaskan penggunaan kelas helper TimingLogger.

Alat yang sangat bagus adalah JMeter dan ada juga plugin untuk Android .

jika Anda tidak ingin menggunakan alat eksternal, tetapi dengan cara yang sangat standar, untuk mengukur waktu yang telah berlalu, Anda harus menggunakan System.nanoTime (). Anda tidak boleh menggunakan currentTimeMillis, karena ini mengukur waktu jam dinding dan, karena tidak ada jam komputer yang sempurna (semuanya terkadang perlu dikoreksi) ada proses yang berjalan dan terus-menerus mengeluarkan koreksi kecil pada jam sistem. Belum lagi koreksi leap second.

Meskipun currentTimeMillis sering digunakan, mengukur waktu dan waktu yang telah berlalu masih salah. Bagaimanapun, karena pemanggilan membutuhkan waktu, Anda tidak boleh berharap untuk menghitung waktu dengan benar dalam interval yang sangat kecil. Tetapi itu seharusnya tidak menjadi masalah bekerja dengan Android.

Saya akan menunjukkan contoh:

long startTime = System.nanoTime();

// run/call the method

long endTime = System.nanoTime();
long diff = endTime - startTime ;
System.out.println("Elapsed milliseconds: " + diff /1000000);

Anda juga dapat melihat perpustakaan gratis ini: http://jetm.void.fm/ .

Anda juga dapat menemukan tutorial untuk JMeter .


Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.