Tôi cần tìm vị trí tắc nghẽn trong ứng dụng Android của mình.
Tôi có thể sử dụng những công cụ hoặc kỹ thuật lập hồ sơ nào?
Tôi cần tìm vị trí tắc nghẽn trong ứng dụng Android của mình.
Tôi có thể sử dụng những công cụ hoặc kỹ thuật lập hồ sơ nào?
Câu trả lời:
Bạn có thể sử dụng Traceview. Nó là xa lý tưởng, nhưng hoạt động. Bài viết này mô tả cách sử dụng nó.
Nó phụ thuộc vào những gì bạn sẽ kiểm tra.
Trong trường hợp bạn phát triển các ứng dụng cho Android, bạn nên thử lớp TimingLogger. Hãy xem bài viết này mô tả cách sử dụng lớp trợ giúp TimingLogger.
Một công cụ rất tốt là JMeter và cũng có một plugin dành cho Android .
nếu bạn không muốn sử dụng các công cụ bên ngoài, nhưng một cách rất chuẩn, để đo thời gian đã trôi qua, bạn phải sử dụng System.nanoTime (). Bạn không nên sử dụng currentTimeMillis, vì nó đo thời gian trên đồng hồ treo tường, vì không có đồng hồ của máy tính nào là hoàn hảo (tất cả chúng thỉnh thoảng cần được sửa lại) có một quy trình chạy và liên tục đưa ra các chỉnh sửa nhỏ đối với đồng hồ hệ thống. Chưa kể đến việc hiệu chỉnh giây nhuận.
Mặc dù currentTimeMillis thường được sử dụng, việc đo thời gian và thời gian đã trôi qua vẫn không chính xác. Nhưng dù sao, vì lời gọi mất một thời gian, bạn không nên mong đợi thời gian chính xác những khoảng rất nhỏ. Nhưng đó không phải là vấn đề khi làm việc với Android.
Tôi sẽ chỉ cho bạn một ví dụ:
long startTime = System.nanoTime();
// run/call the method
long endTime = System.nanoTime();
long diff = endTime - startTime ;
System.out.println("Elapsed milliseconds: " + diff /1000000);
Bạn cũng có thể xem thư viện miễn phí này: http://jetm.void.fm/ .
Bạn cũng có thể tìm thấy hướng dẫn cho JMeter .
Một công cụ khác được đề xuất trong http://developer.android.com/training/articles/perf-tips.html là Caliper: https://code.google.com/p/caliper/ . (Tôi chưa sử dụng nó, vì vậy tôi không biết nhiều về nó.)