Giới Thiệu
Trong bài viết này, bạn sẽ nắm bắt được các thông tin cần thiết để hiểu rõ về quá trình khởi động (app launch) trên iOS, các loại launch, và cách tối ưu hóa hiệu suất ứng dụng nhằm mang lại trải nghiệm tốt nhất cho người dùng.
Những Điều Bạn Sẽ Học Được
- Khái niệm về App Launch và các loại hình thức launch (Phần 1).
- Các giai đoạn trong quá trình khởi động ứng dụng và cách tối ưu chúng (Phần 1).
- Môi trường cần thiết để đo thời gian khởi động ứng dụng (Phần 1).
- Cách sử dụng Instrument để phân tích ứng dụng.
- Phương pháp thu thập thời gian khởi động ứng dụng hàng ngày.
Tiếp nối phần 1 về chủ đề tối ưu hóa app launch trong iOS, phần 2 này sẽ đi sâu vào việc sử dụng Instrument để phân tích quá trình khởi động ứng dụng và tìm hiểu cách mã nguồn của bạn ảnh hưởng đến thời gian khởi động.
Phân Tích Ứng Dụng Với Instrument
Phân Tích Ứng Dụng Là Gì?
Phân tích ứng dụng (Profile app) là quá trình nghiên cứu sâu về hiệu suất của ứng dụng nhằm tối ưu hóa các chỉ số hiệu suất, xác định ảnh hưởng của mã nguồn và đảm bảo rằng ứng dụng hoạt động đúng với mong đợi. Quá trình này bao gồm việc đo đạc các chỉ số như mức sử dụng CPU, tiêu thụ pin, lưu lượng mạng, tiêu thụ bộ nhớ, các luồng đa luồng, quá trình cấp phát và giải phóng bộ nhớ, hiệu suất hoạt ảnh (FPS), và phát hiện rò rỉ bộ nhớ.
Công cụ chính để thực hiện phân tích ứng dụng trên iOS là Instrument của Xcode.
Cách Mở Instrument
Để mở Instrument, bạn thực hiện theo các bước sau:
- Mở Xcode.
- Chọn Xcode trên thanh menu > Open Developer Tool > Instruments.
Các Mẫu Template Hữu Ích Trong Instrument
- App Launch: Phân tích quá trình khởi động ứng dụng để đảm bảo trải nghiệm người dùng tốt ngay từ cái nhìn đầu tiên.
- Time Profile: Xác định việc sử dụng CPU và tìm ra các luồng bị chặn trong thời gian chạy.
- Allocations: Theo dõi việc phân bổ bộ nhớ và tìm ra các rò rỉ bộ nhớ.
- Energy Log: Theo dõi lượng pin tiêu thụ để đảm bảo ứng dụng tiết kiệm năng lượng.
- Network: Phân tích hiệu suất mạng của ứng dụng.
- Core Animation: Đánh giá hiệu suất rendering để đảm bảo hoạt ảnh và chuyển tiếp mượt mà.
Các Bước Để Phân Tích Ứng Dụng
-
Cấu Hình Build Profile: Để thu thập dữ liệu chính xác, hãy đảm bảo rằng bạn profile ứng dụng ở chế độ release và trên thiết bị thật thay vì trên simulator.
- Truy cập vào Scheme > Edit Scheme > Profile > Chọn Release cho Build Configuration.
-
Thực Hiện Phân Tích: Sử dụng tổ hợp phím Command + I hoặc nhấn giữ option Run để chọn Profile và bắt đầu phân tích.
-
Lựa Chọn Template: Khi quá trình build hoàn tất, Instrument sẽ mở ra, chọn template App Launch và nhấn Choose.
-
Ghi Lại Quá Trình Khởi Động: Nhấn Record để ghi lại quá trình khởi động ứng dụng và các tương tác của bạn. Khi hoàn tất, nhấn Stop để dừng ghi.
-
Phân Tích Kết Quả: Kết quả ghi hình sẽ cho thấy các khối màu khác nhau. Bạn có thể thực hiện các bước sau để có cái nhìn tốt hơn về mã nguồn của mình:
- Chọn Target để hiển thị các thread.
- Chọn Main Thread, là luồng UI ảnh hưởng đến thời gian khởi động.
- Ở panel detail, chọn Profile.
- Chọn bộ lọc Call Tree và ẩn các thư viện hệ thống.
- Tìm hiểu về Heaviest Stack Trace để xem các tác vụ nặng nhất và sử dụng thời gian lâu nhất.
-
Tối Ưu: Instrument sẽ cung cấp thời gian cho các dòng lệnh tốn thời gian (>= 5ms) để bạn quyết định nên tối ưu ở đâu.
Tổng Kết Phần 2
Thay qua những thông tin được chia sẻ trong bài viết, bạn đã có cái nhìn rõ hơn về việc phân tích ứng dụng thông qua Instrument và cách nhận diện các tác vụ cần tối ưu để rút ngắn thời gian khởi động ứng dụng. Nội dung tiếp theo trong series sẽ đề cập đến "thu thập thời gian khởi động ứng dụng hàng ngày". Hẹn gặp lại các bạn!
Tài Liệu Tham Khảo
- WWDC 2019: Xem video tại đây.
source: viblo