2017-01-31 8 views
0

Dies sind eine Reihe von Fragen für Android Studio Programmierer, die bereits an großen Projekten gearbeitet haben. Also, bevor ich die Fragen aufliste, lasst mich erklären, warum ich frage.Android Studio Gradle Synchronisierung/Gebäudeperformance

Ich konnte nicht anders, als zu bemerken, dass es 36+ Sekunden dauert, bis Gradle synchronisiert und gebaut wurde, damit ich jedes Mal, wenn ich AS starte, mit der Programmierung beginne. Es ist jetzt nicht so ein Problem, aber wie wäre es, wenn das Projekt mehr als 26.000 Zeilen Code bekommt? So, jetzt sind meine echten Fragen:

1) Nehmen große Projekte für Gradle wesentlich länger zu synchronisieren und zu bauen als ein kleiner?

2) Wenn ja, gibt es irgendwelche Refactoring-/Fehler-Ebenen, die ich in der sync/build umgehen könnte, um den Prozess auf lange Sicht schneller zu machen?

3) Mein Computer kann jedes Spiel auf voller ultra Qualität laufen lassen. Gibt es eine Systemspezifikation, die das Kompilieren und Programmieren von Sprachverarbeitung schneller macht als eine Spielespezifikation?

Dank an alle, die beitragen, und Sie werden anerkannt (mit mindestens einer Stimme) unabhängig davon, ob Sie alle Fragen beantworten können oder nicht!

Antwort

1

Glück Sie. Gradle Geschwindigkeiten haben in den letzten zwei Jahren erheblich zugenommen. Ab heute, obwohl noch ein bisschen langsam, bin ich ziemlich zufrieden mit der Geschwindigkeit. Jedenfalls. In Bezug auf Ihre Fragen, hier ist meine zwei Cent:

  1. Ja. Aber es ist keine lineare "Funktion". Ich bin nicht auf ein Projekt gestoßen, das mehr als 3 oder 4 Minuten dauern würde, wenn es korrekt konfiguriert wurde, vor allem war es ziemlich groß.

  2. Die einzige Möglichkeit, den Prozess zu "beschleunigen", ist die Zuweisung von mehr Speicher.Es gibt zwei Möglichkeiten hier, innerhalb des inneren (Modul) gradle Datei, können Sie dies tun:

dexOptions { javaMaxHeapSize "5g" }

Oder Sie können ein Feld innerhalb der gradle.properties Datei definieren:

org.gradle.jvmargs=-Xmx5632M

  1. Es gibt keine Systemspezifikation, von der ich weiß, dass sie die Leistung erhöht, aber klingt, als ob Sie ein ziemlich gutes System haben und keine Probleme haben. In diesem Bereich wurden viele Fortschritte erzielt.

Viel Spaß beim Entwickeln.

+0

Ich werde versuchen, die Heap-Größe zu erhöhen, wenn Ich werde immer ungeduldig genug, danke: D – newplayer65

1
  1. Ja, größere Projekte benötigen mehr Zeit zum Synchronisieren und Erstellen. Codezeilen tragen ebenso dazu bei wie Abhängigkeiten, die Anzahl der Assets etc. Gradle ist auch etwas berüchtigt dafür, ein wenig langsam zu sein.

  2. Dies hängt von Ihrer individuellen Gradle-Konfiguration ab. Das Entfernen nicht benötigter Schritte (wenn Sie einige konfiguriert haben), z. B. das Signieren des APK, kann ebenfalls hilfreich sein. "Instant Run" ist sehr schnell für kleine Änderungen, aber ist etwas nicht vertrauenswürdig. Es gibt keine Möglichkeit, die Kompilierungsschritte zu überspringen - wenn eine Neukompilierung erforderlich ist, wird eine Neukompilierung benötigt. Vertrauen Sie darauf, dass der Compiler und die IDE alle unnötigen Schritte optimieren und sicherstellen, dass Sie keine unnötigen zusätzlichen Schritte benötigen.

  3. Spielcomputer haben im Allgemeinen ziemlich bullige Prozessoren, die die Hauptkomponente zum Synchronisieren und Erstellen eines Projekts sind. Die Geschwindigkeit der Festplattenlesung auf Ihrer Festplatte ist ebenfalls ein Faktor - SSDs werden viel schneller sein als Plattenlaufwerke - aber es ist vergleichsweise viel weniger wichtig als Ihr Prozessor. Ihre Grafikkarte, die andere große Komponente in einem Gaming-PC, wird überhaupt nicht zum Erstellen verwendet. Ein solider Gaming-PC wird für die Entwicklung mehr als ausreichend sein.

Es gibt ein paar Möglichkeiten, um Zeit von Ihrem Gradle Bauzeiten (for example) rasieren, aber den Zeiten bauen wird immer eine Realität sein.

+0

Vielen Dank für Ihre Eingabe! Ich wünschte, ich könnte dir Karma geben, leider habe ich herausgefunden, dass ich dir nicht einmal Karma geben kann ... und ich wurde sogar für einen Downvote für eine Antwort degradiert, die völlig akzeptabel war:/ – newplayer65