2009-07-14 43 views
6

Tôi đang trong quá trình tối ưu hóa một ứng dụng iPhone cho thời gian tải rất ngắn và tự hỏi:đo thời gian tải ứng dụng iPhone

Có một phương tiện để đo thời gian tải của một ứng dụng iPhone từ thời điểm đó các vòi sử dụng biểu tượng cho đến khi ứng dụng có thể sử dụng được (hoặc ít nhất –viewDidLoad được gọi)?

Lý tưởng nhất điều này sẽ hoạt động trong thiết bị và trình mô phỏng, nhưng nếu ai đó đã tìm ra cách đo thời gian này riêng trong trình mô phỏng ít nhất sẽ là điểm khởi đầu.

Và không; "đồng hồ bấm giờ" hoặc "một Mississippi, hai Mississippi" không được tính. :-)

+0

Bạn không thể chỉ đơn giản là đăng nhập thời gian ngay lập tức khi 'applicationDidLaunch' và sau đó đăng nhập thời gian khi' viewDidLoad' được gọi? –

Trả lời

2

Bắt đầu một bộ đếm thời gian trong phương pháp init của App đại biểu, và sau đó dừng lại khi viewDidAppear: -

Bắt đầu hẹn giờ với: -

NSDate *startTime = [NSDate date]; 

... và kết thúc bằng: -

NSTimeInterval elapsedTime = [startTime timeIntervalSinceNow]; 
NSLog(@"Startup tasks: %f", -elapsedTime); 

Điều này sẽ không bắt đầu từ thời điểm biểu tượng được nhấn, nhưng phải sớm được thực hiện. Bạn có thể có thể xem thời gian trước đó trong nhật ký được đưa ra trong bảng điều khiển trình gỡ lỗi?

1

Đặt NSLog(@"started loading"); vào đầu ứng dụngDidFinishLauching và NSLog(@"finished loading"); trong chế độ xemĐáp ứng của đại biểu ứng dụng. Trong bảng điều khiển trình gỡ lỗi, bạn có được một cái gì đó như

2010-11-21 17:16:06.278 Phy[9157:207] started loading 
2010-11-21 17:16:06.301 Phy[9157:207] finished loading 

Do đó trình mô phỏng cần 0,03 giây để khởi động ứng dụng.

2

Là một phần của WWDC 2016 Apple đã công bố một biến môi trường mới, có sẵn như là một phần của bản beta 2, sẽ giúp bạn ghi lại thời gian khởi chạy của một ứng dụng.

Một vấn đề với câu trả lời ở trên là chúng không tính đến thời gian chính, nơi hình ảnh được tải và rebase và sửa chữa ràng buộc diễn ra.

Nếu bạn thêm biến DYLD_PRINT_STATISTICS = 1 bạn sẽ nhận được thời gian chính được in trong bảng điều khiển.

Phiên 406 từ WWDC 2016 đi vào sử dụng biến này và cách diễn giải kết quả.

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