Mam problem z Xcode 4, który naprawdę bardzo wolno reaguje na interakcje użytkownika, np. Edytowanie kodu, przewijanie obszarów itp. Dzieje się tak szczególnie w przypadku projektów na większą skalę z wieloma kontrolerami / plikami widoku itp.
Całkowicie wyczyściłem dysk twardy i ponownie zainstalowałem Snow Leopard i Xcode w zeszłym tygodniu, ale stopniowo doszło do frustrującego czasu reakcji ponownie (przez kilka dni), znacznie zakłócając przepływ pracy.
Czasami usuwałem również „dane pochodne” projektu za pośrednictwem Organizatora -> Projekty i to miało niewielki wpływ.
Zastanawiam się, czy jest coś, co mogę zrobić, aby poprawić wydajność, poza uzyskaniem w pierwszej kolejności maszyny o wyższej specyfikacji.
FYI Używam MacBooka z procesorami Intel Core 2 Duo 2 GHz i 4 GB pamięci RAM.
Na wypadek, gdybyśmy musieli zaktualizować, chciałbym również wiedzieć, czy ludzie doświadczają tak słabej wydajności Xcode 4 na dobrze wyspecjalizowanych maszynach (co sprawiłoby, że nasza aktualizacja sprzętu byłaby raczej bezcelowa, ponieważ tylko Xcode ma problem z wydajnością na MacBooku).
Jeśli ktoś ma jakieś sugestie lub zalecenia lub może nawet dać nam znać, jak ulepszony sprzęt wpływa na wydajność Xcode w większych drzewach projektów, byłoby to niezwykle pomocne, a także cenne źródło informacji dla innych programistów w podobnej sytuacji.
źródło
Odpowiedzi:
Jeśli wyczyścisz plik obszaru roboczego, pomoże to przyspieszyć.
Najpierw upewnij się, że Xcode nie jest otwarty. Teraz znajdź plik projektu. Kliknij go prawym przyciskiem myszy i wybierz
Show Package Contents
.Następnie usuń
project.xcworkspace
.Otwórz Xcode i ciesz się szybszą wydajnością!
Podziękowania dla: http://meachware.blogspot.com/2011/06/speed-up-xcode-4.html
Edycja: otrzymałem kilka komentarzy na ten temat, zauważając, że w przypadku niektórych projektów może to powodować problemy. Przed wykonaniem tych czynności upewnij się, że masz kopię zapasową projektu, a następnie nie zapomnij sprawdzić i przetestować projektu . Upewnij się, że nadal masz wszystkie pliki wykonywalne i schematy.
źródło
WAŻNA AKTUALIZACJA: Ścieżki zmienione dla Xcode 6 (dzięki za komentarz dcc)! Właśnie dodałem alternatywny sposób.
Jest jeszcze jedna fajna sztuczka, aby przyspieszyć kompilacje, tworząc dysk RAM z następującym wierszem kodu:
diskutil erasevolume HFS+ "ramdisk" `hdiutil attach -nomount ram://8475854`
Tworzy to obraz dysku w pamięci o rozmiarze około 4 GB. Ale uważaj, musisz mieć wystarczająco dużo pamięci. Oczywiście możesz utworzyć mniejszy obraz, na przykład 2 GB (to będzie 4237927).
Następnie mówisz Xcode, aby przechowywał tam wyprowadzone dane
Nie możesz powiedzieć Xcode, aby przechowywał tam dane iPhone Simulator bezpośrednio, ale możesz utworzyć folder na ramdysku i utworzyć łącze symboliczne zamiast katalogu iPhone Simulator, wykonując następujące czynności:
Xcode 6:
cd /Volumes/ramdisk mkdir CoreSimulator rm -R ~/Library/Developer/CoreSimulator ln -s /Volumes/ramdisk/CoreSimulator ~/Library/Developer/CoreSimulator
Starsze wersje Xcode:
cd /Volumes/ramdisk mkdir iPhone\ Simulator rm -R ~/Library/Application\ Support/iPhone\ Simulator ln -s /Volumes/ramdisk/iPhone\ Simulator ~/Library/Application\ Support/iPhone\ Simulator
Jeśli zbuduję dla symulatora z taką konfiguracją, będzie gotowy do pracy w mgnieniu oka :)
Należy pamiętać, że dysk RAM zniknie po ponownym uruchomieniu komputera, więc dobrym pomysłem może być utworzenie skryptu lub czegoś, co działa podczas uruchamiania. I NIE UMIESZCZAJ ŻADNYCH DANYCH, KTÓRE CHCESZ ZACHOWAĆ !!!
AKTUALIZACJA 2013-03-12:
Przeczytaj komentarz Francisco Garcia poniżej!
Z moim nowym MBP (zawierającym dysk SSD) nie potrzebuję już tej metody. Xcode działa jak diabli :). Mam nadzieję, że nie jest to postrzegane jako reklama dla wielkiego koncernu owocowego, to tylko raport z doświadczeń ...
źródło
Wyłączenie problemów na żywo w preferencjach ogólnych spowodowało zdecydowaną różnicę. Konfiguruję również schemat bez włączonego gdb w sytuacjach, w których często uruchamiam ponownie (żaden gdb nie przyspiesza nieco uruchamiania).
źródło
Dla mnie Xcode zyskał ogromny wzrost wydajności po ustawieniu go na działanie w trybie 32-bitowym (domyślnie było to 64). Jest prawie tak szybki, jak stary Xcode 3. Możesz przełączyć się na 32-bitowy, klikając prawym przyciskiem myszy aplikację (w /Developer/Applications/XCode.app ) i wybierając Pobierz informacje i zaznaczając Otwórz w trybie 32-bitowym .
źródło
Xcode 4.2, 4.3:
Poważne problemy z indeksatorem plików (ten sam kod, w którym działa Spotlight, który zawiera błędy od lat? Prawdopodobnie).
Wyłącz wszystko, co nie jest istotne, co jest związane z „oglądaniem” plików:
Xcode 4.4, 4.5:
Te wersje mają poważny wyciek pamięci, zepsuty indeksator plików (ale lepszy niż 4.2 i 4.3) i być może problem z prywatnym plikiem wymiany.
Ostatecznie, wyłączając / włączając przestrzeń wymiany ( jak wyłączyć lub włączyć zamianę w systemie Mac OS X ) i używając normalnych dysków twardych na kilku komputerach oraz przeprowadzając eksperymenty na maszynach z 2 GB RAM do 16 GB RAM, stwierdziłem, że Xcode wydaje się uruchamiać własną przestrzeń wymiany, niezależnie od wymiany systemu OS X (!).
(to może być błąd - może istnieje dodatkowa forma wymiany OS X, o której nie wiem - ale pliki wymiany systemu nie były większe ani mniejsze, podczas gdy miejsce na dysku przeskoczyło o gigabajty w górę iw dół na niektórych komputerach)
Zauważony:
Xcode 4.4 / 4.5 losowo pobierze całą pamięć RAM w systemie (10 GB dla małego projektu), aby reszta systemu zatrzymała się, czekając na zamianę dysku
Xcode zablokuje dostęp do dysku twardego, aby mógł wykonać (zepsute) wewnętrzne indeksowanie plików. Kiedy zaczyna brakować pamięci systemowej i OS X musi dokonać wymiany ... utknie w oczekiwaniu na indeksowanie plików przez Xcode ... a Xcode zajmuje więcej pamięci podczas oczekiwania ... i: BUM! w mniejszych systemach OS X w końcu się zawiesza
Xcode nie potrzebuje przestrzeni wymiany OS X.
Ten ostatni jest bardzo interesujący. Jeśli masz dużo pamięci (np. 16 GB), spróbuj trwale wyłączyć przestrzeń wymiany. Xcode działa szybciej, ponieważ OS X Lion ma pewne błędy w zarządzaniu memami, gdzie zamienia się nawet wtedy, gdy nie jest to konieczne .
Jeśli xcode nagle zwolni, zamienia się wewnętrznie, w którym to momencie możesz go po prostu zabić i ponownie uruchomić.
(jeśli masz dysk SSD, jedynym sposobem, aby dowiedzieć się, czy zaczęła się jego wymiana, jest zaczekanie, aż „zwolni”. W przeciwnym razie wiesz, gdy tylko usłyszysz thrash HD: nie ma już pliku wymiany systemu, więc jedyną możliwą przyczyną jest Xcode)
Możesz bezpiecznie wyłączyć zamianę, nawet jeśli masz 2 GB pamięci RAM (miałem tylko jedną awarię OS X na miesiąc, kiedy to wypróbowałem, uruchamiałem to w ten sposób przez rok), ale powstrzyma cię to przed pracą z wysokiej klasy wideo / grafiką z plikami które potrzebują wielu gigabajtów tylko do działania. Wypróbuj go przez kilka tygodni i zobacz, co się stanie.
Ale ... ponowne uruchomienie Xcode za każdym razem, gdy zwolni, działa cuda. Na maszynach z mniejszą ilością pamięci RAM, prywatny plik wymiany Xcode wydaje się być NATYCHMIAST usuwany po zamknięciu (nie wydaje się, aby miało to miejsce na maszynach z dużą ilością pamięci RAM)
źródło
Żadna z tych odpowiedzi naprawdę nie poprawiła wydajności w moim przypadku (z czasem Xcode 4.1 stał się prawie nieużyteczny, tylko opuszczenie go od czasu do czasu pomogło).
Jednak właśnie się dowiedziałem, że jeśli ciągle zamykam wszystkie moje dokumenty (sterowanie-rozkaz-W), wydaje się, że działa szybko. Xcode automatycznie zachowuje wszystkie kliknięte dokumenty w pamięci w jakiś sposób i możesz nawigować między nimi za pomocą strzałki w lewo / w prawo z klawiszem Ctrl. Jeśli przypadkowo otworzysz zbyt wiele (szczególnie okien IB), czołganie się zatrzymuje. Samo zamknięcie wszystkich otwartych dokumentów od czasu do czasu wydaje się złagodzić ten problem bez konieczności wykonywania pełnego restartu.
źródło
Poniższy post @lukasz trochę pomógł, szczególnie jego punkt nr 8 w jego odpowiedzi (zamknięty panel narzędzi i okienko szybkiej pomocy)
Xcode 4 stał się bardzo powolny i zabija mój dysk twardy
źródło
Każdy, kto ma takie problemy, powinien wypróbować Xcode 4.1 w systemie Mac OS X Lion. Dziwię się, jak bardzo szybszy i responsywny jest na tym samym sprzęcie (tutaj Macbook Pro 2,66 GHz Core 2 Duo z 4 GB pamięci RAM).
Przypuszczam, że w tym wydaniu naprawili mnóstwo błędów wydajnościowych.
źródło
Uruchom Instruments z szablonem profilu czasowego i dołącz go do działającego Xcode (lub clang, llvm itp., Jeśli problem występuje podczas kompilacji). Powinieneś dość szybko zobaczyć problem. Widziałem bardzo różne przyczyny na różnych komputerach. Kontrola wersji jest często winowajcą.
źródło
Mam te same problemy. Zostały częściowo naprawione, ponieważ wersje beta są nadal trwałe. Wygląda na to, że Xcode wewnętrznie ma jeden lub więcej wycieków, które unoszą twoją pamięć. Możesz bardzo dobrze oglądać tę fajną „funkcję”, używając zintegrowanego programu Interface-Builder. Dwa możliwe rozwiązania poniżej modlenia się i wypełniania raportów o błędach do Apple:
źródło
Wypróbowałem prawie wszystko, co zostało zasugerowane w tym wątku i [wielu] innych, a jedyną rzeczą, która działała, było „wyłączenie” subversion dla projektu. Oto kiepska część - JEDYNYM sposobem, w jaki mogłem "wyłączyć" wbudowaną wtyczkę SVN, było sfałszowanie mojego pliku / etc / hosts fałszywym adresem IP, co w efekcie spowodowało niepowodzenie dostępu do SVN.
Próbowałem usunąć / zmienić nazwę IDESubversion.ideplugin w / Developer / Library / Xcode / PrivatePlugIns, ale Xcode 4.2.1 wymiotuje i odmawia uruchomienia.
Próbowałem usunąć moje repozytoria SVN z Xcode za każdym razem, gdy ponownie uruchamiam Xcode, ale Xcode ulega awarii w ciągu kilku minut.
Próbowałem wyłączyć "Status zdalny" poprzez Plik-> Kontrola źródła-> Ukryj status zdalny (nic nie zrobiłem dla mnie).
Teraz, gdy ustawiłem nazwę hosta SVN na 1.2.3.4 w moim pliku hosts, Xcode działa świetnie i nie pokazuje SBBOD prawie za każdym razem, gdy przełączam się między plikami.
$ grep 1.2.3.4 /etc/hosts 1.2.3.4 svn.myhost.com
Następnie, kiedy naprawdę chcę zrobić kontrolę wersji, muszę usunąć plik hosts i użyć polecenia cmd line svn.
źródło
Możesz uniknąć indeksowania Xcode. Takie postępowanie poprawi wydajność pamięci w systemie, ale także uniemożliwi działanie funkcji IDE, takich jak autouzupełnianie i przeskakiwanie do definicji.
$ defaults write com.apple.dt.XCode IDEIndexDisable 1
źródło
Jeśli masz niską wydajność podczas modyfikowania pliku .xib za pomocą konstruktora / edytora interfejsu, przejdź do Inspektora plików dla .xib i wyłącz automatyczne układanie . Wprowadź zmiany w pliku .xib, a następnie jako ostatni krok włącz ponownie układ automatyczny i dodaj lub dostosuj ograniczenia.
źródło
W końcu mój Xcode działał normalnie, wyłączając funkcję git.
źródło
Rozwiązałem problem, wyłączając migawki, jak opisano tutaj:
Edycja scenorysu w Xcode 5 jest bardzo powolna
źródło
W moim przypadku było to użycie pamięci RAM.
Spróbuj zabić kilka kart Chrome lub rzadko używanych aplikacji.
źródło
Znalazłem sztuczkę, aby przyspieszyć kompilację XCode 4: Kiedy uruchamiasz, kompilujesz lub wykonujesz jakiekolwiek inne przetwarzanie w Xcode i zatrzymuje się on na aktywnym monitorze, wybierz proces Xcode, a następnie kliknij przykładowy proces. Spowoduje to odblokowanie procesu i ponowne uruchomienie normalnie, co pozwoli na zbudowanie aplikacji w rozsądnym czasie.
źródło