Xcode 4 - kinerja lambat

128

Saya mempunyai masalah dengan Xcode 4 yang sangat lambat merespons interaksi pengguna, misalnya mengedit kode, menggulirkan area, dll. Ini khususnya terjadi pada proyek berskala lebih besar dengan banyak pengontrol / melihat file dll

Saya benar-benar menghapus hard disk dan menginstal ulang Snow Leopard dan Xcode minggu lalu, tetapi terus-menerus mendarat ke waktu respons yang frustasi lagi (selama beberapa hari) sangat mengganggu alur kerja.

Saya juga kadang-kadang menghapus "data turunan" proyek melalui Penyelenggara -> Proyek dan ini memiliki efek kecil.

Saya bertanya-tanya apakah ada yang bisa saya lakukan untuk meningkatkan kinerja selain mendapatkan mesin yang lebih tinggi dalam contoh pertama.

FYI Saya menjalankan MacBook dengan prosesor Intel Core 2 Duo pada 2GHz dan 4GB RAM.

Jika kita perlu memutakhirkan, saya juga ingin tahu apakah orang-orang mengalami kinerja yang buruk dari Xcode 4 pada mesin-mesin yang dispesifikasi dengan baik (yang akan membuat upgrade perangkat keras kami menjadi tidak berguna karena hanya Xcode yang memiliki masalah kinerja pada MacBook).

Jika ada yang punya saran atau rekomendasi atau bahkan dapat memberi tahu kami bagaimana peningkatan perangkat keras memengaruhi kinerja Xcode pada pohon proyek yang lebih besar maka itu akan sangat membantu dan juga sumber daya berharga bagi para dev lainnya dalam posisi yang sama.

Kzrbill
sumber
Saya melakukan penulisan yang cukup panjang untuk Xcode 4.2 di posting ini: stackoverflow.com/questions/7780663/…
justin
1
Saya menemukan solusi yang lebih baik daripada semua yang dijelaskan di sini. Saya beralih ke AppCode. Ya, itu $ 99, tetapi lebih murah daripada membeli Mac baru. Saya memiliki MacBook Pro sejak 2010. Ini memiliki prosesor yang lebih cepat daripada MacBook Air, di sini di kantor orang-orang yang menggunakan itu masih bisa mendapatkan kecepatan yang lebih baik. Saya telah menginstal ulang Lion, kemudian melakukan instalasi yang bersih untuk Mountain Lion, dan masih belum berhasil. Jadi sekarang saya menggunakan AppCode dan saya senang lagi.
HotFudgeSunday
1
Kepalsuan yang disayangkan. AppCode bahkan lebih lambat dari Xcode. Sepertinya aplikasi Java. Itu totes banyak penyelesaian kode mewah, auto #import dan sebagainya yang memerlukan proses latar belakang. Mungkin lebih baik untuk beberapa situasi, tetapi tidak untuk menghindari kinerja lambat Xcode.
Gabe Rainbow

Jawaban:

161

Jika Anda membersihkan file ruang kerja, ini membantu mempercepatnya.

Pertama, pastikan Xcode tidak terbuka. Sekarang temukan file proyek Anda. Klik kanan padanya, dan pilih Show Package Contents.

masukkan deskripsi gambar di sini

Selanjutnya, hapus project.xcworkspace.

masukkan deskripsi gambar di sini

Buka Xcode dan nikmati kinerja lebih cepat!

Terima kasih kepada: http://meachware.blogspot.com/2011/06/speed-up-xcode-4.html


Sunting: Saya mendapatkan beberapa komentar tentang hal ini karena untuk beberapa proyek ini dapat menimbulkan masalah. Pastikan Anda memiliki cadangan proyek Anda sebelum melakukan langkah-langkah ini, dan jangan lupa untuk memeriksa dan menguji proyek Anda sesudahnya . Pastikan Anda masih memiliki semua executable dan skema Anda.

sudo rm -rf
sumber
menghapus ruang kerja memang membantu masalah, tetapi saya tidak berpikir Anda benar-benar perlu untuk mendapatkan applet heheh
Vincent Bacalso
3
Wow - Saya mencabuti rambut saya karena bola pantai terus-menerus, dan sekarang berjalan seperti mimpi. Terima kasih atas tip yang sangat penting. Perlu disebutkan bahwa itu mengatur ulang sementara tata letak jendela Anda (yang mungkin atau mungkin tidak jelas), tetapi itu adalah harga kecil untuk dibayar. Juga, jika orang ingin secara manual menghapus file ruang kerja mereka dapat mengontrol-klik pada file xcodeproj mereka, pilih 'tampilkan isi paket', dan kemudian hapus atau pindahkan file .xcworkspace.
Erik Asmussen
11
@sudo Luar Biasa, tapi sekarang saya kehilangan alasan kinerja dan tidak bisa membeli MBP baru yang lebih cepat!?!
Daniel Blezek
Saya mengalami masalah kinerja yang serupa. Satu hal yang saya lihat di panel status kecil di tengah atas jendela adalah pesan yang mengatakan "Pengindeksan | diproses 0 dari 1 file" (angka-angka itu hanya contoh). Mungkinkah itu juga menambah kinerja lambat?
milesmeow
3
Ini adalah saran BAD - direktori xcworkspace berisi beberapa file inti untuk proyek Anda. Pada proyek yang sangat sederhana, file-file itu akan hilang, dan itu akan baik-baik saja, maka Anda mungkin belum menyadarinya. Pada proyek yang kompleks - misalnya dengan Exectuables yang dibagikan, Skema bersama, dll - Anda akan merusak proyek Anda. cf pertanyaan .gitignore untuk perincian file WHICH di dalam xcworkspace aman untuk dihapus - dan mana yang tidak! stackoverflow.com/questions/49478/…
Adam
46

PEMBARUAN PENTING: Jalur diubah untuk Xcode 6 (Terima kasih atas komentarnya dcc)! Saya baru saja menambahkan cara alternatif.


Ada trik lain yang bagus untuk mempercepat pembangunan dengan membuat ram ram dengan baris kode berikut:

diskutil erasevolume HFS+ "ramdisk" `hdiutil attach -nomount ram://8475854`

Ini membuat gambar disk dalam memori dengan ukuran sekitar 4 GB. Tapi hati-hati, Anda harus memiliki memori yang cukup. Tentu saja Anda dapat membuat gambar yang lebih kecil seperti 2 GB (yaitu 4237927).

Kemudian Anda memberi tahu Xcode untuk menyimpan data turunan di sana masukkan deskripsi gambar di sini

Anda tidak dapat memberi tahu Xcode untuk menyimpan data iPhone Simulator secara langsung di sana, tetapi Anda dapat membuat folder di ramdisk dan membuat tautan simbolik alih-alih direktori iPhone Simulator dengan melakukan ini:

Xcode 6:

cd /Volumes/ramdisk
mkdir CoreSimulator
rm -R ~/Library/Developer/CoreSimulator
ln -s /Volumes/ramdisk/CoreSimulator ~/Library/Developer/CoreSimulator

Versi Xcode lama:

cd /Volumes/ramdisk
mkdir iPhone\ Simulator
rm -R ~/Library/Application\ Support/iPhone\ Simulator
ln -s /Volumes/ramdisk/iPhone\ Simulator ~/Library/Application\ Support/iPhone\ Simulator

Jika saya membangun untuk simulator dengan pengaturan ini, sudah siap dan berjalan dalam waktu singkat :)

Ketahuilah bahwa ram disk akan hilang ketika Anda me-restart mesin Anda, jadi bisa jadi ide bagus untuk membuat skrip atau sesuatu yang berjalan saat startup. DAN JANGAN TEMPAT DATA APA SAJA YANG ANDA INGINKAN !!!

UPDATE 2013-03-12:

  1. Baca komentar dari Francisco Garcia di bawah ini!

  2. Dengan MBP baru saya (berisi drive SSD) saya tidak membutuhkan metode ini lagi. Xcode berjalan seperti neraka :). Saya harap ini tidak dilihat sebagai iklan untuk masalah buah besar, itu hanya laporan pengalaman ...

benjamin.ludwig
sumber
2
oh man .. ini benar-benar hebat. tetapi PENTING: ini akan menghapus coredata Anda dari simulator ... Anda akan kehilangan setiap hasil tes yang Anda buat sejauh ini. jadi terima kasih untuk pembuatan yang lebih cepat, tapi peringatannya akan menyenangkan =)
Sebastian Flückiger
2
bagi siapa pun yang melakukan ini, ketahuilah bahwa ADA SATU HAL YANG ANDA INGINKAN dalam folder data turunan Anda, file simbol Anda. Setelah Anda memasang aplikasi, Anda akan ingin menyimpan di tempat yang aman file simbolnya jika Anda ingin men-debug dengan laporan kerusakan
SystematicFrank
1
@FranciscoGarcia Jika Anda menggunakan aplikasi melalui organizer xcode dengan pengarsipan, dSYM akan berada dalam arsip. Ini disimpan di luar folder data turunan (setidaknya itu ada di versi xcode saat ini - 4.6)
Danny Parker
1
@impcaptor Anda dapat menggunakan Automator untuk membuat program yang menjalankan skrip. Dalam preferensi sistem Anda, pergi ke Pengguna & Grup -> Item Login dan tambahkan program itu. Saya yakin ada cara yang lebih mudah, tetapi yang ini berhasil
benjamin.ludwig
1
Jalan ~ / Perpustakaan / Aplikasi \ Dukungan / iPhone \ Simulator tampaknya tidak lagi benar. Mohon perbarui.
davidcondrey
9

Menonaktifkan Masalah Langsung dalam Preferensi Umum telah membuat perbedaan yang pasti. Saya juga menyiapkan skema tanpa gdb diaktifkan untuk situasi di mana saya sering menjalankan kembali (tidak ada gdb mempercepat peluncuran cukup sedikit).

greg
sumber
7

Bagi saya, Xcode mendapatkan peningkatan kinerja yang sangat besar setelah mengaturnya agar berjalan dalam mode 32-bit (standarnya adalah 64). Ini hampir secepat Xcode 3. lama. Anda dapat beralih ke 32 bit dengan mengklik kanan aplikasi (di /Developer/Applications/XCode.app ) dan memilih Dapatkan Info dan memeriksa Buka dalam mode 32-bit .

gyozo kudor
sumber
Tidak ada bedanya bagi saya di MBP 2.2Ghz i7 saya pada 10.6.8. Komputer / OS apa yang Anda miliki?
ettore
Saya memiliki Mac Mini dengan 2.26 Ghz Intel Core 2 Duo, 10.6.8, 2GB memori.
gyozo kudor
7

Xcode 4.2, 4.3:

Masalah utama dengan pengindeksan file (kode yang sama yang menjalankan Spotlight, yang telah buggy selama bertahun-tahun? Mungkin).

Nonaktifkan semua hal yang tidak penting yang terlibat dengan file "menonton":

  1. Bantuan Cepat (NB: jangan pernah mengklik tab QH! Bahkan menyembunyikan Asisten masih menyebabkan kode berjalan! Beralih ke tab yang berbeda sebelum pindah ke file baru ...)
  2. Manajemen SCM (SVN, Git, dll - Dukungan git Xcode masih sedikit bermasalah (dapat merusak proyek), dan mereka telah menjatuhkan dukungan SVN, jadi Anda seharusnya tidak menggunakannya lagi!)
  3. coba hapus folder ruang kerja Anda (sesuai jawaban yang diterima), tetapi hanya jika itu besar pada disk
  4. ... hal lain yang dapat Anda temukan terkait dengan status file individual

Xcode 4.4, 4.5:

Versi ini memiliki kebocoran besar, pengindeksan file yang rusak (tetapi lebih baik dari 4.2 dan 4.3), dan mungkin masalah file swap pribadi.

Akhirnya, dengan menonaktifkan / mengaktifkan ruang swap ( cara menonaktifkan atau mengaktifkan swapping di mac os x ), dan menggunakan hard drive normal pada beberapa mesin, dan dengan menjalankan eksperimen pada mesin dengan 2 GB RAM hingga 16 GB RAM, saya menemukan Xcode tampaknya menjalankan ruang swap sendiri, independen dari swap OS X (!).

(Ini mungkin kesalahan - mungkin ada bentuk tambahan dari pertukaran OS X yang saya tidak tahu - tetapi sistem swap file tidak menjadi lebih besar atau lebih kecil, sementara ruang disk melonjak oleh gigabyte ke atas dan ke bawah pada beberapa mesin)

Diamati:

  1. Xcode 4.4 / 4.5 akan secara acak mengambil semua RAM di sistem Anda (10-an GB untuk proyek kecil) sehingga sisa sistem terhenti, macet menunggu penukaran disk

    1. WORSE: pada macbook dengan SSD, Anda tidak akan tahu ini telah terjadi
    2. TERBURUK: ... walaupun itu mungkin merusak hard disk Anda (SSD tidak suka meronta-ronta menulis)
  2. Xcode akan menanggung akses ke hard-disk sehingga dapat melakukan pengindeksan file internal (rusak). Ketika memori sistem hampir habis, dan OS X perlu melakukan swapping ... macet menunggu Xcode untuk mengindeks file ... dan Xcode membutuhkan lebih banyak memori saat menunggu ... dan: BOOM! pada sistem yang lebih kecil, OS X akhirnya hang

  3. Xcode tidak membutuhkan ruang swap OS X

Yang terakhir sangat menarik. Jika Anda memiliki banyak memori (mis. 16 GB), coba nonaktifkan ruang swap secara permanen. Xcode berjalan lebih cepat, karena OS X Lion memiliki beberapa bug dalam manajemen mem di mana ia bertukar bahkan ketika itu tidak perlu .

Jika xcode melambat tiba-tiba, itu bertukar secara internal, pada titik mana Anda bisa mematikan dan memulai kembali.

(Jika Anda memiliki SSD, satu-satunya cara Anda bisa tahu jika itu mulai bertukar adalah menunggu untuk itu "menjadi lebih lambat". Jika tidak, Anda tahu segera setelah Anda mendengar HD thrash: tidak ada sistem swapfile lagi, jadi satu-satunya penyebab yang mungkin adalah Xcode)

Anda dapat menonaktifkan swap dengan aman walaupun Anda memiliki RAM 2GB (saya hanya mengalami satu kerusakan OS X per bulan ketika saya mencoba ini, menjalankannya dengan cara ini selama setahun), tetapi itu akan menghentikan Anda melakukan pekerjaan video / grafik kelas atas dengan file yang membutuhkan multi-gigabytes hanya untuk menjalankan. Jangan ragu untuk mencobanya selama beberapa minggu dan lihat apa yang terjadi.

Tapi ... me-restart Xcode kapan pun melambat akan menghasilkan keajaiban. Pada mesin dengan RAM lebih sedikit, swapfile pribadi Xcode sepertinya akan SEGERA dihapus ketika Anda menutup (sepertinya tidak terjadi pada mesin dengan banyak RAM)

Adam
sumber
4

Tidak satu pun dari tanggapan ini yang benar-benar meningkatkan kinerja dalam kasus saya (seiring waktu Xcode 4.1 menjadi hampir tidak dapat digunakan, hanya berhenti sekarang dan kemudian membantu).

Namun, saya baru tahu bahwa jika saya terus menutup semua dokumen saya (control-command-W) sepertinya tetap cepat. Xcode secara otomatis menyimpan semua dokumen yang Anda klik di dalam memori entah bagaimana, dan Anda dapat menavigasi di antara mereka dengan panah kiri / kanan perintah-perintah. Jika Anda secara tidak sengaja membuka terlalu banyak (terutama jendela IB), ia akan terhenti. Hanya dengan menutup semua dokumen terbuka sekarang dan kemudian tampaknya meringankan ini tanpa perlu melakukan restart penuh.

***
sumber
2

Setiap orang yang mengalami masalah ini harus mencoba Xcode 4.1 pada Mac OS X Lion. Saya terkejut betapa jauh lebih cepat dan responsifnya pada perangkat keras yang sama (Macbook Pro 2.66 GHz Core 2 Duo dengan RAM 4GB di sini).

Saya kira mereka memperbaiki banyak bug kinerja dengan rilis ini.

Ricardo Sanchez-Saez
sumber
2
Masih lambat untuk saya di setup yang sama. (Xcode 4.1 dan Mac OSX Lion di MacBook 2.26 GHz Intel Core 2 Duo, 2 GB RAM)
Andrei
1

Jalankan Instrumen dengan templat profil waktu dan tempelkan ke Xcode yang sedang berjalan (atau dentang, llvm, dll. Jika masalah Anda selama pembuatan). Anda harus dapat melihat masalahnya dengan cepat. Saya telah melihat penyebab yang sangat berbeda pada mesin yang berbeda. Kontrol versi sering kali menjadi biang keladinya.

quellish
sumber
1

Saya menghadapi masalah yang sama. Sebagian diperbaiki karena versi beta masih persisten. Tampaknya Xcode secara internal mendapat satu atau lebih kebocoran yang mengambang memori Anda. Anda dapat menonton "fitur" yang bagus ini dengan sangat baik saat menggunakan Interface-Builder terintegrasi. Dua kemungkinan solusi di bawah doa dan mengisi laporan bug ke apel:

  1. Jangan gunakan Builder internal, alih-alih luncurkan aplikasi eksternal.
  2. Keluar dari Xcode dari waktu ke waktu, ini akan membebaskan memori yang bocor.
Tim Specht
sumber
Saya mendapat iMac Mid 2011, 3,1 i5, 12gb Ram + 1gb memori grafis baru, masalahnya tidak terlalu mengganggu saya di sini, tapi sebelum saya membelinya saya mengembangkannya di MacBook, buat saja Anda bekerja mesin, itu sepadan dengan uangnya, percayalah :)
Tim Specht
0

Saya sudah mencoba hampir semua yang disarankan di utas ini dan [banyak] lainnya dan satu-satunya hal yang berhasil bagi saya adalah "menonaktifkan" subversi untuk proyek tersebut. Inilah bagian jeleknya - SATU-SATUNYA cara saya bisa "menonaktifkan" plugin SVN yang ada di dalamnya adalah dengan mengambil file / etc / hosts saya dengan alamat IP palsu, yang secara efektif menyebabkan semua akses SVN gagal.

Saya mencoba menghapus / mengganti nama IDESubversion.ideplugin di / Developer / Library / Xcode / PrivatePlugIns, tetapi Xcode 4.2.1 muntah dan menolak untuk memulai.

Saya mencoba menghapus repositori SVN saya dari Xcode masing-masing dan setiap kali saya me-restart Xcode, tetapi Xcode crash dalam beberapa menit.

Saya mencoba mematikan "Remote Status" melalui File-> Source Control-> Hide Remote Status (tidak melakukan apa pun untuk saya).

Sekarang saya telah mengatur nama host SVN saya ke 1.2.3.4 di file host saya, Xcode berfungsi dengan baik dan tidak menunjukkan SBBOD hampir setiap kali saya beralih di antara file.

$ grep 1.2.3.4 /etc/hosts
1.2.3.4 svn.myhost.com

Kemudian, ketika saya benar-benar ingin melakukan kontrol versi, saya harus un-frig file hosts dan menggunakan cmd line svn.

DustinB
sumber
Coba ganti nama folder, /Applications/Xcode.app/Contents/PlugIns/IDESubversion.ideplugin, ke sesuatu dengan akhiran yang berbeda. Saya telah menggunakan trik serupa untuk menonaktifkan plugin Git.
John McFarlane
0

Anda dapat menghindari pengindeksan Xcode. Melakukannya akan meningkatkan kinerja memori sistem Anda, tetapi juga akan mencegah fitur IDE seperti pelengkapan otomatis dan lompatan ke definisi bekerja.

$ defaults write com.apple.dt.XCode IDEIndexDisable 1
davidcondrey
sumber
0

Jika Anda memiliki kinerja lambat saat memodifikasi file .xib dengan pembangun antarmuka / editor, kemudian pergi di bawah File Inspector untuk .xib dan menonaktifkan tata letak otomatis . Lakukan pengeditan pada .xib, lalu sebagai langkah terakhir, aktifkan kembali tata letak otomatis dan tambahkan atau sesuaikan batasan.

Sparky
sumber
0

Saya akhirnya mendapatkan Xcode saya untuk bekerja secara normal dengan mematikan fitur git.

Emmy
sumber
0

Dalam kasus saya, itu adalah penggunaan RAM.

masukkan deskripsi gambar di sini

Cobalah untuk membunuh beberapa tab Chrome atau aplikasi yang jarang digunakan.

Maciek Czarnik
sumber
0

Saya telah menemukan trik untuk mempercepat kinerja kompilasi XCode 4: Ketika Anda menjalankan atau mengkompilasi atau melakukan pemrosesan lain dalam Xcode dan menghentikan monitor terbuka aktif, pilih proses Xcode lalu klik pada proses sampel. Ini akan membuat proses berhenti macet dan berjalan kembali seperti biasa yang memungkinkan untuk membangun aplikasi dalam waktu yang wajar.

william pagnon
sumber