2013-11-28 17 views
7

Có cách nào so sánh các tệp theo dõi được lưu với Công cụ hay không. Làm thế nào tôi có thể có một so sánh của bất kỳ cách nào liên quan đến xây dựng liên tục nhận ra các ứng dụng.Công cụ Xcode so sánh dấu vết

Tôi nói rằng tôi phát hành phiên bản ứng dụng iPhone 1.0 sau đó trong 2 tháng 1.1. Điều gì là tốt nhất phải có một so sánh profiling về bộ nhớ và thời gian?

Trả lời

3

Bạn có thể lưu tệp theo dõi. Nhưng để thực hiện là hợp lý để diễn giải các kết quả đó vào một ngày trong tương lai, việc chèn "cờ" vào dấu vết của bạn là hữu ích, để đánh dấu các sự kiện quan trọng để bạn có thể biết ứng dụng đang làm gì tại các điểm đáng chú ý trong dấu vết.

Trong quá khứ, tôi khuyên bạn nên bao gồm các cờ được chèn theo chương trình, do đó bạn có một số cơ sở để so sánh trong tương lai, nhưng điều này bị hỏng trong iOS7. Nhưng nếu bạn đang chạy bộ mô phỏng này trên iOS trước 7.0, bạn có thể:

  • Thêm DTPerformanceSession.framework vào dự án của bạn;

  • Trong nguồn của bạn:

    #import <DTPerformanceSession/DTSignalFlag.h> 
    
  • Sau đó, trong mã nguồn của bạn, bạn có thể lập trình chèn cờ trong Instruments (khi chạy trên trước iOS7 giả):

    // Point flag (just an event in time) 
    DTSendSignalFlag("some event", DT_POINT_SIGNAL, TRUE); 
    
    // Start flag (to mark the start of something) 
    DTSendSignalFlag("start some intensive process", DT_START_SIGNAL, TRUE); 
    
    // End flag (to mark the end of something) 
    DTSendSignalFlag("end some intensive process", DT_END_SIGNAL, TRUE); 
    
  • Di DTPerformanceSession.framework từ dự án của bạn (quá trình thêm nó cho phép Xcode giải quyết tiêu đề, nhưng bạn không muốn giữ nó trong dự án iOS của bạn hoặc nếu không bạn sẽ nhận được các lỗi liên kết).

Bạn có thể muốn giữ một bản sao của tài liệu lưu trữ tương ứng để bạn có thể resymbolicate file trace vào một ngày trong tương lai.

Rõ ràng, nếu lược tả trong iOS7, bạn có thể tự thêm cờ, theo cách thủ công, nhưng nó không phải là thanh lịch hoặc nghiêm ngặt như gắn cờ lập trình.

+0

Cảm ơn bạn đã trả lời, không may ứng dụng của tôi là iOS 7 chỉ. Những gì bạn đang nói là để thấy sự khác biệt về dấu vết, tôi phải tự xem xét nội dung theo dõi của những bản dựng liên tiếp đó. Không có "khác biệt so sánh tự động" cho các tệp theo dõi. Nếu không, việc theo dõi bộ nhớ và thời gian định hình có thể chỉ bằng tay. – user3017495

+0

Sau khi thực hiện điều này, bạn cần vào Window> Manage Flags, sau đó chọn hiển thị Signal Flags, nếu không bạn sẽ không nhìn thấy chúng – Dov

+0

Trong các phiên bản hệ điều hành sau này, chúng ta có thể sử dụng "điểm quan tâm". http://stackoverflow.com/a/39416673/1271826 – Rob

2

Cách tốt nhất, mà tôi tìm ra là:

  1. Cài đặt cả hai phiên bản của ứng dụng vào điện thoại
  2. mở Instruments.
  3. Nhấp vào nút "Thư viện" và thêm rằng bạn muốn theo dõi. Đối với tôi nó trông giống như thế:

    • Hoạt động giám sát
    • Phân bổ
    • Time Profiler
    • Hoạt động Mạng
    • Memory Monitor
  4. Chọn như một mục tiêu thiết bị iOS của bạn. Sau đó, ứng dụng của bạn để kiểm tra.

  5. Chạy cùng một kịch bản trên cả hai phiên bản ứng dụng.
  6. Bây giờ bạn có thể thấy so sánh cho 2 lần chạy tương tự của mình.
  7. Chỉ cần nhấp vào bất kỳ hàng nào để xem chi tiết về lần chạy.

Tôi vẫn đang tìm cách, cách tự động hóa các bước này và tự động nhận được một số đánh giá chính. Nhưng bây giờ là cách tốt nhất, mà tôi biết.

Hy vọng điều đó sẽ hữu ích.

Đối với tôi nó trông giống như thế:

xcode-instruments-trace-comparison

Các vấn đề liên quan