Systrace - Công cụ giúp phân tích hiệu năng của ứng dụng Android(Phần 1)
The systrace tool helps analyze the performance of your application by capturing and displaying execution times of your applications processes and other Android system processes.(Theo định nghĩa chuẩn của trang Android Developer thì là như vậy còn trong quá trình thực hành thì định ...
The systrace tool helps analyze the performance of your application by capturing and displaying execution times of your applications processes and other Android system processes.(Theo định nghĩa chuẩn của trang Android Developer thì là như vậy còn trong quá trình thực hành thì định nghĩa của mình đó là 1 công cụ giúp ghi lại những hàm, thời gian thực hiện các hàm mà không cần phải ghi log qua đó giúp bạn phân tích và tối ưu hiệu năng của ứng dụng của bạn. Dễ hiểu hơn rồi phải không nào)
Trong bài viết này mình sẽ sử dụng systrace để phân tích 1 source code simple có sẵn Todomvpdagger(Ứng dụng tạo các task Todo các bạn có thể tải 1 cách dễ dàng trên github). Và sau đây mình sẽ giớ thiệu các bước cần thiết để sử dụng systrace tool để phân tích hiệu năng của ứng dụng.
Thực ra có 2 cách lấy file systrace 1 là sử dụng câu lệnh adb qua terminal. 2 là sử dụng Android Device Monitor các bạn có thể tìm thấy như ở trong ảnh Ở đây mình sẽ thực hiện theo cách số 2 vì nó trực quan hơn :d. Sau khi chạy app và bật Android Device Monitor ở phần bên trái các bạn sẽ thấy các process đang chạy. Systrace sẽ tracking dựa theo process ID của ứng dụng cần phân tích. Với app Todomvpdagger chúng ta cần tracking với PID: com.example.android.architecture.blueprints.todomvpdagger . Ở phần bên trái chọn button Start Method Profiling Ngay sau khi chọn button này vậy là ứng dụng của chúng ta đã được systrace theo dõi và ghi lại các hàm cùng thời gian thực hiện của hàm, các luồng xử lý dữ liệu đi cùng...
Có 2 lựa chọn khi bắt đầu tracking ở option đầu tiên Sample based profiling systrace sẽ chỉ tracking theo thời gian mà chúng ta set(Mặc định là 1000= 1s). Còn option Trace based profiling sẽ tracking toàn bộ các hàm và chạy với biên độ từ thời điểm bắt đầu nhấn Start Method Profiling -> Stop Method Profiling. Bạn cần cân nhắc việc lựa chọn vì việc ghi lại file systrace nếu quá lâu sẽ dẫn đến mất nội dung mà chúng ta thực sự cần(File systrace có dộ dài giới hạn, mình cũng không biết thực sự nó là bao nhiêu (metghe) ).
Trong quá trình thực hiện xây dựng hoặc bảo trì ứng dụng có những phần mà performance chưa được tốt lúc này sau khi Start Method Profiling từ phía systrace thì đồng thời bạn cần thực hiện lại các phần mà bạn cần phân tích(VD: thực hiện lại chức năng đồng bộ, xóa dữ liệu....) để systrace có thể theo dõi và xuất ra file systrace giúp bạn phân tích. Với nội dung bài viết này mình sẽ thực hiện với chức năng thêm task. Giả sử ở đây việc thêm task bị gọi lại 5 lần sẽ được fix với 1 vòng lặp for . Trong khi thực tế bạn chỉ cần 1 lần duy nhất là đủ để đem lại hiệu năng cao nhất. Trên phần giao diện ứng dụng bạn thêm 1 task mới(Task này sẽ bị gọi lại 5 lần do mình fix cứng)
Sau khi thực hiện xong việc tracking method cần phân tích nhấn Stop Method Profiling. Systrace sẽ xuất ra file systrace cho bạn. Giao diện như hình vẽ
Ở phần 2 mình sẽ tiếp tục trình bày cách phân tích 1 file systrace. Các thông số bạn cần quan tâm trong quá trình phân tích. Bài viết mang những quan điểm cá nhân trong quá trình làm việc đúc rút ra. Nếu có gì sai sót rất mong nhận được sự đóng góp từ phía các bạn.