Trình thu thập thông tin thời gian cho thấy hoạt động tốn nhiều thời gian nhất trong ứng dụng của tôi đang tải UITableViewCells
từ các tệp nib. Giá đắt nhất liên quan đến việc tải UITableViewCell
bằng hình ảnh 4KB.Tạo UITableViewCell nhanh hơn hoặc tải một chương trình từ một ngòi bút có nhanh hơn không?
Tôi tải UITableViewCell
từ ngòi với đoạn mã sau:
[[NSBundle mainBundle] loadNibNamed:@"UITableViewCellPortrait" owner:self options:NULL];
cell = portraitCell;
self.portraitCell = nil;
Có ai so sánh sự khác biệt giữa việc tạo một cái nhìn lập trình hoặc tải một UITableViewCell
từ một ngòi bút?
EDIT:
Tôi đã so sánh hồ sơ thời gian của các lần chạy lặp lại tải UITableViewCell
từ ngòi bút và tạo chế độ xem theo chương trình. Thử nghiệm của tôi liên quan xen kẽ giữa hai số UITableViews
khoảng 10 lần trong khoảng 3-5 giây. Trong mỗi thử nghiệm, tải UITableViewCell
lập trình nhanh hơn đáng kể, nhanh hơn từ 2x đến 6 lần.
Có ai có thể chứng thực những kết quả này không?
EDIT: Tôi đã cập nhật mã tải nib để chỉ tải tệp nib một lần và sử dụng phiên bản được lưu trong bộ nhớ cache cho các cuộc gọi tiếp theo.
if (self.UITableViewPortaitNib == nil) {
self.UITableViewPortaitNib = [UINib nibWithNibName:@"UITableViewCellPortrait" bundle:[NSBundle mainBundle]];
}
self.UITableViewPortaitNib instantiateWithOwner:self options:NULL];
cell = portraitCell;
self.portraitCell = nil;
Tôi cũng sử dụng các công cụ tự động hóa để tạo ra chạy ổn định hơn và kết quả vẫn đề nghị tải UITableViewCells
lập trình nhanh hơn tải UITableViewCells
cho một ngòi. Thời gian chạy trung bình để tải UITableViewCells
từ ngòi bút là khoảng 90 mili giây, trong khi thời gian chạy trung bình để tạo UITableViewCell
theo chương trình là 50 mili giây.
Hiển thị cho chúng tôi mã tải nib của bạn. –
Cảm ơn bạn đã xem @robmayoff. Tôi đã cập nhật câu hỏi để bao gồm mã của tôi để tải ngòi bút. – Eytan
Tìm kiếm thú vị - bạn có thể chạy lại thử nghiệm bằng cách sử dụng các bảng phân cảnh và các ô mẫu thử nghiệm, nơi chế độ xem bảng thực hiện tất cả tải nib trong nền không? – jrturton