Penggunaan Memori Sangat tinggi di ARC

Di aplikasi saya, saya memperhatikan bahwa ini berjalan sangat lambat ketika beralih antar tab. Penyelidikan lebih lanjut menunjukkan bahwa dalam pengujian penggunaan memori, aplikasi saya melebihi 70MB dalam 5 menit pengujian. Aplikasi email asli saya hanya menggunakan 40MB. Ini tidak mungkin terjadi

Saya menggunakan ARC dan yang saya pikirkan adalah jika saya menggunakan sesuatu seperti

@property(nonatomic, strong)NSString *string;

ARC akan membatalkan alokasi ini secara otomatis. Tampaknya ia tidak melakukan hal itu sama sekali.

Yang ingin saya ketahui adalah apakah saya dapat mengurangi memori dengan menggunakan dealloc dalam kode saya (saat saya beralih ke ARC, semua metode dealloc saya dihapus) atau apakah ada cara lain untuk mempercepat aplikasi saya.

Untuk memberi Anda lebih banyak informasi tentang fungsi aplikasi, berikut adalah daftar poin-poin penting:

-Mendapatkan pesan email dari layanan web bersama dengan pdf

-Menyimpan array untuk memeriksa apakah pesan telah dibaca, dihapus, atau belum dibaca

-Tab email memeriksa pesan baru dari layanan web setiap kali seseorang mengklik tab tersebut

-Pemeriksaan yang sama untuk file pdf

Informasi apa pun akan banyak membantu saya.

Terima kasih

EDIT

Berikut gambar bocoran yang saya punya. Itu banyak.

masukkan deskripsi gambar di sinimasukkan deskripsi gambar di sini masukkan deskripsi gambar di sini


person BigT    schedule 18.07.2012    source sumber


Jawaban (2)


Cara terbaik untuk mengetahui penyebab penggunaan memori yang tinggi ini adalah dengan menggunakan alat Instruments dan lebih khusus lagi alat Leaks.

Anda dapat menemukan informasi lebih lanjut di situs pengembang Apple di sini.

Semoga ini membantu.

person werner    schedule 18.07.2012
comment
Terima kasih untuk bantuannya. Lihatlah hasil edit di pertanyaan saya. Saya telah menambahkan kebocorannya. - person BigT; 18.07.2012
comment
Bolehkah saya menyarankan untuk melihat video WWDC 2010: Sesi 311 - Analisis Memori Tingkat Lanjut dengan Instrumen. Hal ini akan membantu Anda memahami antarmuka Instrumen untuk menemukan kode yang menyebabkan masalah. - person werner; 18.07.2012

Saya tidak familiar dengan ARC tapi menurut saya ini mungkin sedikit memperlambat aplikasi Anda. Mengapa? Pikirkan: ARC akan secara otomatis melakukan pekerjaan "rilis" Anda, dibandingkan rilis manual Anda. Misalkan Anda memiliki metode 30 baris, dan di baris pertama Anda membuat objek, lalu di baris ketiga Anda tidak membutuhkannya lagi dan Anda melepaskannya secara manual. Sedangkan ARC akan menunggu hingga metode selesai untuk menyadari bahwa objek Anda tidak diperlukan lagi. Sekarang misalkan Anda membuat banyak alokasi dalam metode Anda, dan ARC akan menyimpan semuanya hingga akhir metode tercapai. Melepaskan secara manual IMHO lebih cepat.

person John Smith    schedule 18.07.2012