2012-11-27 29 views
5

Tôi thấy mất 4-5 giây trên thiết bị iPhone4/iOS6.0 và tôi muốn biết hệ thống đang làm gì trong thời gian đó, có cách nào hay nhất để rút ngắn thời gian khởi chạy ứng dụng không?iPhone/iOS: Các phương pháp hay nhất để rút ngắn thời gian khởi chạy ứng dụng?

cảm ơn rất nhiều.

EDIT: tôi đăng nhập nó và nó mất khoảng 1.5 giây trong applicationDidFinishLaunchingWithoptions: , và nó cũng giống như 3.5-4s (tôi đã sử dụng một chiếc đồng hồ để có được một thời gian preciser) từ I nhấp vào biểu tượng ứng dụng để tung ra thị trường màn hình biến mất.Đó là để nói, khoảng 2-2.5s để khởi chạy ứng dụng trước khi gọi applicationDidFinishLaunchingWithoptions

+1

Nó không chắc hệ thống đang tiến hành 4-5 giây - có bao nhiêu bạn có xảy ra ở 'applicationDidFinishLaunching ...'? – Tommy

Trả lời

11

Đơn giản chỉ cần xem phiên 225 và chạy: Làm một ấn tượng lớn với Mỗi Launch từ WWDC 2012, nó sẽ đưa bạn qua quá trình profiling ra mắt ứng dụng của bạn và đưa ra lời khuyên về sai lầm thường nhất được thực hiện, đó là tuyệt vời.

2

Hệ thống không phải là điều khiến ứng dụng của bạn mất 4-5 giây để khởi chạy. Đó có thể là mã của bạn trong applicationDidFinishLaunching hoặc init, viewDidLoad hoặc các phương pháp thiết lập khác của bộ điều khiển chế độ xem gốc của bạn.

Hồ sơ ứng dụng của bạn trên thiết bị thực bằng Công cụ 'Trình tạo hồ sơ thời gian'. Chỉ khởi chạy ứng dụng của bạn, không nhấn bất kỳ nút nào trên giao diện người dùng khi nó được khởi chạy. Chúng tôi chỉ muốn xem điều gì đang diễn ra trong khi ra mắt.

Tôi khuyên bạn nên kiểm tra các tùy chọn 'Tách biệt Chủ đề', 'Đảo ngược Cây,' Ẩn Thư viện Hệ thống 'và' Chỉ Hiển thị Obj-C 'dưới' Cây Gọi 'ở phía dưới bên trái của cửa sổ.

Khi bạn đã kiểm tra các tùy chọn đã chọn, hãy chuyển xuống danh sách các cuộc gọi phương thức. Bắt đầu với những người dùng nhiều thời gian nhất (vì lý do rõ ràng). Bạn có thể nhấp đúp vào tên biểu tượng để biết thêm thông tin chi tiết về thời gian đã được sử dụng. Chúc may mắn!

4

Có một video WWDC 2012 rất tốt với chuỗi dài dành cho chính xác chủ đề này: Phiên 235 (Phản hồi). Tôi khuyên bạn nên xem nó. Nó cung cấp cho bạn rất nhiều gợi ý và thủ thuật để tăng tốc khởi chạy (không liên kết với quá nhiều thư viện, v.v.), cho bạn biết cách đo và cách đọc số đo của bạn trong Dụng cụ, v.v.

0

Theo ý kiến ​​của tôi, thời gian khởi chạy chủ yếu là chi phí hoạt động,

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions; 

Nếu bạn thực hiện một loạt công cụ chặn quá trình, sẽ mất nhiều thời gian để khởi chạy.

Vì vậy, bạn có thể tối ưu hóa applicationDidFinishLaunching bằng cách di chuyển một số mã không cần thiết mà bạn có thể thực hiện sau này. Hoặc bạn có thể làm cho mã của bạn không chặn, ví dụ, bạn nên sử dụng các yêu cầu mạng không đồng bộ trong applicationDidFinishLaunching thay vì các mã đồng bộ.

1

Chúng tôi có cùng một vấn đề.

Cuối cùng, chúng tôi tăng tốc đáng kể thời gian khởi chạy bằng cách tải trước video trong chế độ xemDidAppear. Vào thời điểm người dùng chạm vào nút phát để khởi chạy phim, đủ nội dung đã tải để có thể phát lại gần như ngay lập tức.

ví dụ::

- (void)viewDidAppear:(BOOL)animated { 
    NSURL *movieURL = [NSURL URLWithString:@"http://static.example.com/movie.mov"]; 
    MPMoviePlayerViewController *vc = [[MPMoviePlayerViewController alloc] initWithContentURL:movieURL]; 
    vc.moviePlayer.shouldAutoplay = NO; 
    [vc.moviePlayer prepareToPlay]; 
    self.moviePlayerViewController = vc; 
} 

Chi tiết đầy đủ trong bài viết trên blog này: http://blog.tetherpad.com/blog/2013/3/22/improving-tutorial-movie-load-times-on-ios-for-fun-and-profit

+0

có thể bạn tải video của mình ở chế độ nền trong 'application: didFinishLaunchingWithOptions:', trước đó là 'viewDidAppear' của trình điều khiển xem của bạn, để nó không chặn luồng chính. – Gon

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