wake-up-neo.net

Xcode 4 - langsame Leistung

Ich habe ein Problem damit, dass Xcode 4 wirklich sehr langsam auf Benutzerinteraktionen reagiert, z. Bearbeiten von Code, Scrollen von Bereichen usw. Dies geschieht insbesondere bei größeren Projekten mit vielen Controllern/Anzeigen von Dateien usw.

Ich habe die Festplatte komplett gelöscht und Snow Leopard und Xcode neulich Woche neu installiert, aber es kam immer wieder zu einer frustrierenden Reaktionszeit (über mehrere Tage), die den Workflow erheblich störte.

Ich habe auch gelegentlich die "abgeleiteten Daten" des Projekts über den Organizer -> Projekte entfernt und dies hat nur geringe Auswirkungen.

Ich frage mich, ob ich etwas tun kann, um die Leistung zu verbessern, außer zunächst eine Maschine mit höherer Geschwindigkeit zu kaufen.

Zu Ihrer Information: Ich verwende ein MacBook mit Intel Core 2 Duo-Prozessoren mit 2 GHz und 4 GB RAM.

Für den Fall, dass wir ein Upgrade benötigen, würde ich gerne wissen, ob diese schlechte Leistung von Xcode 4 auf gut spezifizierten Computern auftritt (was unsere Hardware-Aktualisierung ziemlich sinnlos macht, da nur Xcode Leistungsprobleme auf dem MacBook hat).

Wenn jemand Vorschläge oder Empfehlungen hat oder uns sogar mitteilen könnte, wie sich eine verbesserte Hardware auf die Leistung von Xcode in größeren Projektbäumen auswirkt, wäre dies äußerst hilfreich und auch eine wertvolle Ressource für andere Entwickler in einer ähnlichen Position.

128
Kzrbill

Wenn Sie die Arbeitsbereichsdatei löschen, wird sie beschleunigt.

Stellen Sie zunächst sicher, dass Xcode nicht geöffnet ist. Suchen Sie nun Ihre Projektdatei. Klicken Sie mit der rechten Maustaste darauf und wählen Sie Show Package Contents.

enter image description here

Als nächstes löschen Sie project.xcworkspace.

enter image description here

Öffne Xcode und genieße eine schnellere Leistung!

Vielen Dank an: http://meachware.blogspot.com/2011/06/speed-up-xcode-4.html


Edit: Ich habe mehrere Kommentare dazu erhalten, die darauf hinweisen, dass dies bei einigen Projekten zu Problemen führen kann. Stellen Sie sicher, dass Sie eine Sicherungskopie Ihres Projekts haben, bevor Sie diese Schritte ausführen, und vergessen Sie nicht, Ihr Projekt anschließend zu überprüfen und zu testen . Stellen Sie sicher, dass Sie noch alle ausführbaren Dateien und Schemata haben.

161
sudo rm -rf

WICHTIGES UPDATE: Pfade für Xcode 6 geändert (Danke für den Kommentar dcc)! Ich habe gerade den alternativen Weg hinzugefügt.


Es gibt einen weiteren Nizza-Trick, um Builds zu sichern, indem Sie eine RAM-Disk mit der folgenden Codezeile erstellen:

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

Dadurch wird ein In-Memory-Image mit einer Größe von ca. 4 GB erstellt. Aber seien Sie vorsichtig, Sie müssen genügend Speicher haben. Natürlich können Sie ein kleineres Image wie 2 GB erstellen (das wäre 4237927).

Dann weisen Sie Xcode an, abgeleitete Daten dort zu speichern enter image description here

Sie können Xcode nicht anweisen, die iPhone Simulator-Daten direkt dort zu speichern, aber Sie können auf der Ramdisk einen Ordner erstellen und auf diese Weise einen symbolischen Link anstelle des iPhone Simulator-Verzeichnisses erstellen:

Xcode 6:

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

Ältere Xcode-Versionen:

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

Wenn ich mit diesem Setup für den Simulator baue, ist er in kürzester Zeit einsatzbereit :)

Beachten Sie, dass die RAM-Festplatte beim Neustart des Computers nicht mehr angezeigt wird. Erstellen Sie daher möglicherweise ein Skript oder eine Funktion, die beim Start ausgeführt wird. UND BEWAHREN SIE KEINE DATEN AUF, DIE SIE BEWAHREN WOLLEN !!!

UPDATE 2013-03-12:

  1. Lesen Sie den Kommentar von Francisco Garcia weiter unten!

  2. Bei meinem neuen MBP (mit SSD-Laufwerk) brauche ich diese Methode nicht mehr. Xcode läuft wie die Hölle :). Ich hoffe, dies wird nicht als Werbung für den großen Obstkonzern gesehen, es ist nur ein Erfahrungsbericht ...

46
benjamin.ludwig

Das Deaktivieren von Live-Problemen in den allgemeinen Einstellungen hat einen deutlichen Unterschied gemacht. Ich habe auch ein Schema ohne GDB eingerichtet, das für Situationen aktiviert ist, in denen ich häufig neu starte (kein GDB beschleunigt den Start erheblich).

9
greg

Xcode 4.2, 4.3:

Größere Probleme mit dem Datei-Indexer (derselbe Code, mit dem Spotlight ausgeführt wird, der seit Jahren fehlerhaft ist? Vermutlich).

Deaktivieren Sie alle nicht wesentlichen Elemente, die mit dem "Überwachen" von Dateien zusammenhängen:

  1. Schnellhilfe (Hinweis: Klicken Sie niemals auf die Registerkarte QH. Selbst wenn Sie den Assistenten verbergen, wird der Code immer noch ausgeführt. Wechseln Sie zu einer anderen Registerkarte, bevor Sie zu einer neuen Datei wechseln.)
  2. SCM-Verwaltung (SVN, Git usw. - Die Git-Unterstützung von Xcode ist immer noch ein wenig fehlerhaft (kann Projekte beschädigen), und die SVN-Unterstützung wurde eingestellt, sodass Sie sie sowieso nicht verwenden sollten!)
  3. versuchen Sie, Ihren Arbeitsbereichsordner zu löschen (gemäß der akzeptierten Antwort), aber nur, wenn er auf der Festplatte groß ist
  4. ... alles andere, was Sie in Bezug auf den Status einzelner Dateien finden können

Xcode 4.4, 4.5:

Diese Versionen haben ein schwerwiegendes Speicherleck, einen kaputten Dateiindexer (aber besser als 4.2 und 4.3) und möglicherweise ein Problem mit privaten Auslagerungsdateien.

Durch Deaktivieren/Aktivieren von Swap Space ( wie man Swap in Mac OS X aktiviert oder deaktiviert ) und durch Verwenden normaler Festplatten auf mehreren Computern und durch Ausführen von Experimenten auf Computern mit 2 GB RAM bis zu 16 GB RAM, ich fand, dass Xcode einen eigenen Swap-Space zu betreiben scheint, unabhängig vom OS X-Swap (!).

(Dies könnte ein Fehler sein - vielleicht gibt es eine zusätzliche Form von OS X-Auslagerungen, die ich nicht kenne -, aber die Systemauslagerungsdateien wurden nicht größer oder kleiner, während der Festplattenspeicher auf einigen Computern um Gigabyte nach oben und unten sprang.)

Beobachtete:

  1. Xcode 4.4/4.5 nimmt nach dem Zufallsprinzip alle RAM in Ihrem System (10 GB für ein winziges Projekt)), so dass der Rest des Systems zum Stillstand kommt und auf das Austauschen der Festplatte wartet

    1. SCHLECHTER: Auf Macbooks mit SSDs wissen Sie nicht, dass dies passiert ist
    2. SCHLECHTES: ... obwohl es möglicherweise Ihre Festplatte beschädigt (SSDs mögen es nicht, Schreibvorgänge zu verprügeln)
  2. Xcode blockiert den Zugriff auf die Festplatte, damit die (fehlerhafte) interne Dateiindizierung durchgeführt werden kann. Wenn der Systemspeicher knapp wird und OS X das Auslagern durchführen muss, bleibt es hängen und wartet darauf, dass Xcode Dateien indiziert ... und Xcode benötigt mehr Speicher, während es wartet ... und: BOOM! Auf kleineren Systemen bleibt OS X schließlich hängen

  3. Xcode benötigt keinen OS X-Auslagerungsspeicher

Der letzte ist sehr interessant. Wenn Sie über viel Arbeitsspeicher verfügen (z. B. 16 GB), deaktivieren Sie den Auslagerungsspeicher dauerhaft. Xcode läuft schneller, weil OS X Lion einige Fehler in der Mem-Verwaltung hat, bei denen es austauscht , auch wenn es nicht erforderlich ist .

Wenn xcode plötzlich langsamer wird, wird es intern ausgetauscht. An diesem Punkt können Sie es einfach beenden und neu starten.

(Wenn Sie über eine SSD verfügen, können Sie nur abwarten, bis die SSD "langsamer" wird. Andernfalls wissen Sie, sobald Sie den HD - Thrash hören: Es gibt keine System - Swap - Datei mehr einzige mögliche Ursache ist Xcode)

Sie können Swap sicher deaktivieren, auch wenn Sie 2 GB haben RAM (Ich hatte nur einen OS X-Absturz pro Monat, als ich dies versuchte, lief es für ein Jahr auf diese Weise), aber es wird Sie daran hindern High-End-Videos/-Grafiken funktionieren mit Dateien, für deren Ausführung mehrere Gigabyte erforderlich sind. Probieren Sie sie einige Wochen lang aus und sehen Sie, was passiert.

Aber ... Xcode immer dann neu zu starten, wenn es langsamer wird, wirkt Wunder. Auf Computern mit weniger RAM wird die private Auslagerungsdatei von Xcode beim Herunterfahren SOFORT gelöscht (bei Computern mit viel RAM scheint dies nicht der Fall zu sein).

7
Adam

Ich weiß nicht, ob dies jemandem hilft, aber für mich hat XCode eine enorme Leistungssteigerung erzielt, nachdem es auf den 32-Bit-Modus eingestellt wurde (standardmäßig 64). Es ist fast so schnell wie der alte xcode 3. Sie können auf 32 Bit umschalten, indem Sie mit der rechten Maustaste auf die App klicken (in / Developer/Applications/XCode.app) und Get Info auswählen = und prüfen Im 32-Bit-Modus öffnen.

7
gyozo kudor

Keine dieser Antworten verbesserte die Leistung in meinem Fall wirklich (im Laufe der Zeit wurde Xcode 4.1 kaum mehr verwendbar und half nur ab und zu, es zu beenden).

Ich habe jedoch gerade herausgefunden, dass es schnell zu bleiben scheint, wenn ich alle meine Dokumente schließe (Control-Command-W). Xcode speichert automatisch alle Dokumente, auf die Sie klicken, und Sie können mit dem Steuerbefehl nach links/rechts zwischen ihnen navigieren. Wenn Sie versehentlich zu viele Fenster öffnen (insbesondere IB-Fenster), kommt das Programm zum Stillstand. Wenn Sie ab und zu alle geöffneten Dokumente schließen, scheint dies zu lindern, ohne dass ein vollständiger Neustart erforderlich ist.

4
Dick

Der folgende Beitrag von @lukasz hat ein wenig geholfen, insbesondere sein Punkt 8 in seiner Antwort (Closed Utility Panel und Quick Help Pane).

Xcode 4 wurde extrem langsam und tötet meine Festplatte

2
kris

Jeder, bei dem diese Probleme auftreten, sollte Xcode 4.1 unter Mac OS X Lion ausprobieren. Ich bin überrascht, wie viel schneller und reaktionsschneller es auf der gleichen Hardware ist (Macbook Pro 2.66 GHz Core 2 Duo mit 4 GB RAM hier).

Ich nehme an, sie haben mit dieser Version Unmengen von Leistungsfehlern behoben.

Starten Sie Instruments mit der Zeitprofilvorlage und hängen Sie sie an den laufenden Xcode an (oder clang, llvm usw., wenn Ihr Problem während der Erstellung auftritt). Sie sollten in der Lage sein, das Problem ziemlich schnell zu erkennen. Ich habe auf verschiedenen Maschinen sehr unterschiedliche Ursachen gesehen. Versionskontrolle ist oft ein Täter.

1
quellish

Ich stehe vor den gleichen Problemen, die teilweise behoben wurden, seit die Beta erstellt wurde, aber immer noch bestehen. Es scheint, dass Xcode intern einen (oder mehrere ...) Speicherlecks hat, die Ihr Gedächtnis schweben lassen. Sie können dieses raffinierte "Feature" sehr gut beobachten, wenn Sie den integrierten Interface-Builder verwenden. Zwei mögliche Lösungen zum Beten und Ausfüllen von Fehlerberichten an Apple:

  1. Verwenden Sie nicht den internen Builder, sondern starten Sie stattdessen die externe Anwendung
  2. Beenden Sie Xcode von Zeit zu Zeit, dies sollte den Speicher freigeben, der durchgesickert ist

Sorry, aber ich denke es gibt keine besseren Lösungen ....: /

1
Tim Specht

Ich habe endlich meine xcode Arbeit normal, indem ich die Git-Funktion ausschalte.

0
Emmy

Ich habe einen Trick gefunden, um die Kompilierungsleistung von XCode 4 zu beschleunigen:

Wenn Sie xcode ausführen oder kompilieren oder eine andere Verarbeitung in xcode ausführen und den aktiven Monitor öffnen und xcode process auswählen, klicken Sie auf sample process. Dadurch wird der Prozess gelöst und wieder normal ausgeführt, sodass die App in einer angemessenen Zeit erstellt werden kann. Zumindest funktioniert das bei mir.

Wille

0
william pagnon

Ich habe fast alles ausprobiert, was in diesem Thread und [zahlreichen] anderen vorgeschlagen wurde, und das einzige, was für mich funktionierte, war, Subversion für das Projekt zu "deaktivieren". Hier ist der beschissene Teil - die einzige Möglichkeit, das eingebaute SVN-Plugin zu "deaktivieren", bestand darin, meine/etc/hosts-Datei mit einer falschen IP-Adresse zu versehen, wodurch der gesamte SVN-Zugriff fehlschlug.

Ich habe versucht, das IDESubversion.ideplugin in/Developer/Library/Xcode/PrivatePlugIns zu entfernen/umzubenennen, aber Xcode 4.2.1 kotzt und lässt sich nicht starten.

Ich habe versucht, meine SVN-Repositorys bei jedem Neustart von Xcode von Xcode zu entfernen, aber Xcode stürzt innerhalb weniger Minuten ab.

Ich habe versucht, "Remote-Status" über Datei-> Quellcodeverwaltung-> Remote-Status ausblenden zu deaktivieren (habe nichts für mich getan).

Jetzt, da ich meinen SVN-Hostnamen in meiner Hosts-Datei auf 1.2.3.4 gesetzt habe, funktioniert Xcode hervorragend und zeigt den SBBOD fast bei jedem Wechsel zwischen Dateien nicht mehr an.

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

Wenn ich dann wirklich die Versionskontrolle durchführen möchte, muss ich die Hosts-Datei entfrigeln und cmd line svn verwenden.

0
DustinB

In meinem Fall war es die RAM Verwendung.

enter image description here

Versuchen Sie, einige Chrome Tabs oder selten verwendete Apps zu töten. Dies sollte helfen!

0
Maciek Czarnik

Viele gute Vorschläge hier, ich habe mein Problem gelöst, indem ich Snapshots deaktiviert habe, wie hier beschrieben:

Bearbeiten des Storyboards in Xcode 5 ist sehr langsam

0
np0x

Wenn Sie beim Ändern einer .xib-Datei mit dem Interface Builder/Editor eine langsame Leistung erzielen, suchen Sie im Dateiinspektor die .xib-Datei und Deaktivieren des automatischen Layouts. Nehmen Sie Ihre Änderungen an der .xib-Datei vor und aktivieren Sie als letzten Schritt das automatische Layout erneut und fügen Sie Einschränkungen hinzu oder passen Sie sie an.

0
Sparky

Sie können die Indizierung von Xcode vermeiden. Dies verbessert die Speicherleistung Ihres Systems, verhindert jedoch auch, dass IDE Funktionen wie die automatische Vervollständigung und der Sprung zu Definitionen funktionieren.

$ defaults write com.Apple.dt.XCode IDEIndexDisable 1
0
davidcondrey