Tôi có quy trình đồng bộ hóa lớn trong đó tôi tải xuống và giải nén các tệp 400-500 XML
rồi phân tích cú pháp. Với dữ liệu này, Im sẽ tạo ra rất nhiều đối tượng dữ liệu lõi trên RestKit API
. Lúc đầu, tôi đã có một cảnh báo bộ nhớ với byte sống 450mb + bởi vì tôi đã không sử dụng các bể tự động và chỉ cố gắng lưu dữ liệu cốt lõi vào cuối.Cảnh báo bộ nhớ trên thiết bị, không phải với Công cụ
Tôi đã khắc phục điều đó, lưu thường xuyên vào dữ liệu chính và sử dụng các khối @autoreleasepool
. Khi im chạy ứng dụng của tôi ngay bây giờ với các công cụ, tôi có thể thấy cách các byte trực tiếp chỉ là 20mb-30mb, luôn giải phóng bộ nhớ và không bao giờ tăng kích thước. Quá trình này chỉ hoạt động. Nhưng khi tôi khởi động ứng dụng mà không có công cụ, sau khi xem một tập tin tôi nhận được một Memory Warning
. Sau đó về sự cố ứng dụng.
Sự khác biệt giữa việc chạy ứng dụng có và không có công cụ instruments
là gì? Tại sao nó kết thúc trong các kết quả khác nhau?
Một điểm khác biệt thường là lược tả bằng các công cụ tạo ra bản phát hành bản phát hành, trong khi chạy qua Xcode sẽ tạo ra một bản dựng gỡ lỗi. Tuy nhiên, bạn không chắc chắn điều này có thể ảnh hưởng đến tình trạng này như thế nào. – borrrden
Ví dụ: bạn có thể bật Zombies trong cấu hình gỡ lỗi nhưng không phải là cấu hình Phát hành – hooleyhoop
guys - Tôi chỉ yêu nền tảng này. Tôi chỉ không biết rằng các công cụ đang sử dụng bản phát hành bản phát hành. Bởi vì đối tượng của tôi là lớn mà zombie kích hoạt là một thất bại. Khi im sử dụng bản phát hành, mọi thứ đang hoạt động như một nét duyên dáng. Xin vui lòng cho nó như một câu trả lời để tôi có thể chấp nhận nó. Bạn không biết bao nhiêu nó đã giúp tôi.Cảm ơn bạn rất nhiều :) – NDY