Khắc phục sự cố về hiệu suất bản dựng bằng Trình phân tích bản dựng

Sử dụng Trình phân tích bản dựng để kiểm tra hiệu suất bản dựng của dự án. Đối với mỗi bản dựng bạn thực hiện, Trình phân tích bản dựng sẽ cố gắng trình bày những thông tin quan trọng nhất để bạn có thể nhanh chóng xác định và giải quyết các lỗi hồi quy trong hiệu suất của bản dựng.

Để biết thêm các chiến lược khác về cách cải thiện hiệu suất bản dựng, hãy đọc bài viết Tối ưu hoá tốc độ bản dựng.

Bắt đầu

Mỗi lần bạn xây dựng ứng dụng, Trình phân tích bản dựng sẽ tạo một báo cáo và hiển thị dữ liệu từ báo cáo mới nhất trong cửa sổ Build (Bản dựng).

Để bắt đầu, hãy làm như sau:

  1. Nếu bạn chưa thực hiện việc này, hãy xây dựng ứng dụng theo một trong các cách sau:
    • Nhấp vào Build > Make Project (Bản dựng > Tạo dự án) trong thanh trình đơn.
    • Để tạo Android App Bundle hoặc APK, hãy nhấp vào Build > Build Bundle(s)/APK(s) > Build Bundle(s) (Bản dựng > Gói bản dựng/APK > Gói bản dựng) hoặc Build > Build Bundle(s)/APK(s) > Build APK(s) (Bản dựng > Gói bản dựng/APK > APK bản dựng) trong thanh trình đơn.
  2. Để mở cửa sổ Build (Bản dựng), hãy chọn View > Tool Windows > Build (Xem > Cửa sổ công cụ > Bản dựng) trong thanh trình đơn.
  3. Để xem báo cáo bản dựng trong Build Analyzer (Trình phân tích bản dựng), hãy nhấp vào thẻ Build Analyzer (Trình phân tích bản dựng) trong cửa sổ Build (Bản dựng).

Dữ liệu mà Trình phân tích bản dựng trình bày có thể thay đổi giữa các bản dựng. Vì vậy, bạn nên tạo dự án nhiều lần và so sánh dữ liệu để xác định các mẫu.

Xem các trình bổ trợ có nhiệm vụ xác định thời lượng bản dựng

Khi bạn mở Trình phân tích bản dựng lần đầu tiên sau khi hoàn tất một bản dựng, cửa sổ sẽ hiển thị thông tin tổng quan về bản phân tích bản dựng, như trong hình 1.

Hình 1. Trang tổng quan của Trình phân tích bản dựng đưa ra phần tóm tắt kết quả.

Để xem bảng chi tiết về các trình bổ trợ có nhiệm vụ xác định thời lượng bản dựng, hãy nhấp vào Trình bổ trợ có tác vụ ảnh hưởng đến thời lượng bản dựng trên trang tổng quan. Bạn cũng có thể chọn Tasks trong trình đơn thả xuống và xác nhận rằng bạn đang nhóm theo trình bổ trợ. Biểu đồ sắp xếp các trình bổ trợ và các tác vụ liên quan theo tổng thời gian cần thiết để hoàn thành.

Hình 2. Trình phân tích bản dựng cung cấp bảng chi tiết về các trình bổ trợ ảnh hưởng đến thời lượng bản dựng.

Xem các nhiệm vụ xác định thời lượng bản dựng

Để xem bảng chi tiết các nhiệm vụ đóng góp vào thời lượng bản dựng, hãy nhấp vào Tasks ảnh hưởng đến thời lượng bản dựng trên trang tổng quan hoặc chọn Tasks (Tác vụ) trong trình đơn thả xuống. Nếu dự án của bạn sử dụng AGP 8.0 trở lên, các tác vụ sẽ được nhóm theo danh mục theo mặc định. Nhờ đó, bạn có thể dễ dàng xác định các khu vực ảnh hưởng đến thời lượng bản dựng. Nhấp vào từng công việc con để tìm hiểu thêm về cách thực thi.

Hình 3. Trình phân tích bản dựng cung cấp bảng chi tiết về các nhiệm vụ ảnh hưởng nhiều nhất đến thời lượng bản dựng của bạn.

Kiểm tra các cảnh báo

Nếu Trình phân tích bản dựng phát hiện một số nhiệm vụ có thể được định cấu hình để chạy hiệu quả hơn, thì bạn sẽ thấy một cảnh báo. Để xem tất cả các cảnh báo mà Trình phân tích bản dựng đã xác định cho bản dựng của bạn, hãy nhấp vào All alerts (Tất cả cảnh báo) trên trang tổng quan hoặc chọn Warnings (Cảnh báo) trên trình đơn thả xuống.

Một số cảnh báo có đường liên kết Tạo báo cáo, như minh hoạ trong hình 4. Khi bạn nhấp vào đường liên kết Generate report (Tạo báo cáo), một hộp thoại sẽ xuất hiện kèm theo thông tin bổ sung có thể giúp nhà phát triển trình bổ trợ giải quyết vấn đề trong phiên bản mới của trình bổ trợ. Nhấp vào Copy (Sao chép) để lưu văn bản vào bảng nhớ tạm nhằm dễ dàng dán thông tin vào báo cáo lỗi cho nhà phát triển trình bổ trợ.

Hình 4. Thông tin chi tiết về cảnh báo của Trình phân tích bản dựng.

Loại cảnh báo

Trình phân tích bản dựng báo cáo các loại cảnh báo sau:

  • Always run tasks (Các nhiệm vụ luôn chạy): Là nhiệm vụ luôn chạy khiến các nhiệm vụ khác chạy trên mỗi bản dựng. Điều này là không cần thiết. Có 2 lý do chính khiến bạn thấy cảnh báo này:

    • (Phổ biến hơn) Bạn không khai báo dữ liệu đầu vào/đầu ra của nhiệm vụ một cách chính xác. Nếu là trường hợp này, bạn nên khai báo chính xác các dữ liệu đầu vào và đầu ra cho các nhiệm vụ của mình. Điều này có nghĩa là bạn có thể tự khai báo các dữ liệu đầu vào và đầu ra của mình nếu có thể, hoặc thay đổi các phiên bản trình bổ trợ nếu các nhiệm vụ kích hoạt cảnh báo là của các trình bổ trợ của bên thứ ba.

    • (Ít phổ biến hơn) Một nhiệm vụ đã đặt upToDateWhen thành false (sai), đây là điều bạn nên tránh. Có thể có một số logic đánh giá được chuyển thành false (sai) hoặc upToDateWhen được mã hoá cứng chuyển thành false (sai). Nếu có logic đánh giá được chuyển thành false (sai), kết quả này có thể là cố ý, khi đó bạn có thể chọn bỏ qua cảnh báo. Nếu upToDateWhen được mã hoá cứng chuyển thành false (sai), bạn nên loại bỏ quá trình mã hoá cứng khỏi mã của mình.

  • Task setup issues (Các vấn đề về việc thiết lập nhiệm vụ): Cảnh báo này được tạo cho những nhiệm vụ khai báo cùng một thư mục là dữ liệu đầu ra. Điều này có nghĩa là các dữ liệu đầu ra của nhiệm vụ đó rất có thể không được lưu giữ giữa các phiên bản và các nhiệm vụ đó sẽ luôn chạy, ngay cả khi không có thay đổi nào. Để giải quyết cảnh báo này, bạn nên khai báo các thư mục dữ liệu đầu ra khác nhau cho các nhiệm vụ của mình. Điều này có nghĩa là bạn có thể tự khai báo các thư mục đầu ra khác nhau nếu có thể hoặc thay đổi phiên bản trình bổ trợ nếu các nhiệm vụ kích hoạt cảnh báo là của các trình bổ trợ bên thứ ba.

  • Trình xử lý chú giải không tăng dần: Cảnh báo này được tạo trong các trường hợp trình xử lý chú giải không tăng dần và dẫn đến nhiệm vụ JavaCompile luôn chạy không tăng dần. Để xử lý cảnh báo này, hãy chuyển sang một trình xử lý chú giải tăng dần.

  • Bộ nhớ đệm cấu hình: Cảnh báo này sẽ hiển thị nếu tính năng lưu cấu hình vào bộ nhớ đệm chưa được bật cho dự án của bạn. Trình phân tích bản dựng trình bày một trình tự các bản dựng để kiểm tra xem dự án của bạn có tương thích với tính năng lưu cấu hình vào bộ nhớ đệm hay không. Nếu quá trình kiểm tra khả năng tương thích diễn ra thành công, bạn có thể bật tính năng lưu cấu hình vào bộ nhớ đệm trong Trình phân tích bản dựng.

  • Kiểm tra Jetifier: Cảnh báo này hiển thị nếu cờ enableJetifier xuất hiện và được bật trong dự án của bạn; nghĩa là nếu bạn có android.enableJetifier=true trong tệp gradle.properties. Trình phân tích bản dựng có thể thực hiện quá trình kiểm tra để xem liệu bạn có thể xoá cờ một cách an toàn để giúp dự án của bạn đạt hiệu suất bản dựng cao hơn và di chuyển khỏi các Thư viện hỗ trợ Android không được duy trì hay không.

Kiểm tra mức tác động của lượt tải xuống

Trình phân tích bản dựng cung cấp thông tin tóm tắt về thời gian dùng để tải các phần phụ thuộc xuống và chế độ xem chi tiết về lượt tải xuống trên mỗi kho lưu trữ. Để kiểm tra mức tác động của lượt tải xuống, hãy chọn Downloads (Lượt tải xuống) trong trình đơn thả xuống. Thông tin này cũng có trong cửa sổ Sync (Đồng bộ hoá).

Bạn có thể dùng thông tin này để xác định xem việc tải phần phụ thuộc không mong muốn xuống có tác động tiêu cực đến hiệu suất của bản dựng hay không. Điều này đặc biệt quan trọng trong quá trình tạo các bản dựng tăng dần, không tải cấu phần phần mềm xuống một cách nhất quán.

Cụ thể, bạn có thể dùng thông tin này để xác định các vấn đề về cấu hình, chẳng hạn như sử dụng phiên bản phần phụ thuộc động gây ra lượt tải xuống không mong muốn. Ngoài ra, nếu số lượng yêu cầu không thành công của một kho lưu trữ cụ thể ở mức cao, thì bạn nên xoá hoặc chuyển kho lưu trữ đó xuống thấp hơn trong cấu hình kho lưu trữ của mình.

Hình 5. Build Analyzer (Trình phân tích bản dựng) cho thấy mức tác động của lượt tải xuống đối với thời lượng bản dựng.

[Chỉ dành cho Windows] Kiểm tra tác động của phần mềm diệt vi-rút

Trình phân tích bản dựng sẽ cho bạn biết liệu phần mềm diệt vi-rút có thể ảnh hưởng đến hiệu suất của bản dựng hay không. Điều này có thể xảy ra nếu phần mềm diệt virus (chẳng hạn như Windows Defender) đang quét các thư mục mà Gradle sử dụng theo thời gian thực. Trình phân tích bản dựng đề xuất một danh sách các thư mục mà bạn nên loại trừ khỏi quá trình quét đang hoạt động. Nếu có thể, công cụ này sẽ cung cấp một đường liên kết để thêm các thư mục đó vào danh sách loại trừ thư mục của Windows Defender.