Jakieś rady na przyspieszenie kompilacji w Flex Builder 3?

Uruchamiam Flex Builder 3 na Macu i wraz z rozwojem mojego projektu-czas kompilacji wydłuża się i wydłuża. Używam niektórych SWC i jest spora ilość kodu, ale nie powinno to zająć minut, aby zbudować i crash codziennie, prawda?

Author: travis, 2008-08-29

14 answers

Oprócz wspomnianych już sugestii, Zamknij wszystkie otwarte projekty, których nie używasz.

Rich kliknij Projekt w widoku nawigatora i wybierz "Zamknij niepowiązane projekty".

W zależności od liczby otwartych projektów może to prowadzić do znacznej poprawy czasu kompilacji, a także wydajności.

Mike chambers

[email protected]

 5
Author: mikechambers,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2008-09-15 22:43:19

Po pierwsze, komentarze do niektórych odpowiedzi:

  1. Nie ma potrzeby jawnego określania -incremental w Flex Builderze, ponieważ domyślnie używa kompilacji przyrostowej.

  2. -keep-generated-actionscript jest zabójcą wydajności, ponieważ nakazuje kompilatorowi wypisywanie kodów AS3 wygenerowanych Dla komponentów MXML w środku kompilacji. File I / O W Środku kompilacji oznacza niepotrzebne pauzy i niski procesor utylizacje.

  3. -optymalizacja spowalnia łączenie, ponieważ instruuje łącznik do tworzenia mniejszych plików SWF. Zauważ, że-optimize = true|false nie ma żadnego wpływu na budowanie SWC, ponieważ SWC są bibliotekami i muszą być nieoptymalizowane.

  4. Rzadko mieszam z ustawieniami JVM, ponieważ JVM dobrze zna swoje zadania i całkiem dobrze dostraja się w czasie wykonywania. Większość ludzi pogarsza sprawę, ustawiając różne parametry strojenia GC. To powiedziawszy, są 3 ustawienia, które większość ludzi rozumie i ustaw poprawnie ich użycie:

- Xmx (max rozmiar sterty)

- server or-client (HotSpot Server or Client VM)

- XX: + UseSerialGC lub-XX: + UseParallelGC (lub inne nie szeregowe GC)

- serwer konsekwentnie przewyższa-Klienta o około 30% podczas uruchamiania kompilatora Flex. - XX:+UseParallelGC włącza równoległy garbage collector. idealny do komputera wielordzeniowego i gdy komputer nadal ma cykle CPU do zapasowego.

You may also want to check out HellFire Compiler Daemon (http://bytecode-workshop.com / ). używa wielu rdzeni procesora do kompilacji wielu aplikacji Flex w tym samym czasie. Możesz również uruchomić kompilator na drugiej maszynie za pomocą gniazd (zakładając, że twoja druga maszyna ma szybsze procesory i więcej pamięci).

Moim zdaniem, używaj więcej modułów niż bibliotek i używaj HFCD.

Mam nadzieję, że to pomoże.

-Clement

 10
Author: Clement,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-04-14 18:48:44

Nie ma potrzeby używania mxmlc w wierszu poleceń, aby móc dodawać flagi kompilatora. Kliknij prawym przyciskiem myszy projekt w Nawigatorze Flex, wybierz Właściwości, a następnie kompilator Flex w wyświetlonym oknie dialogowym. Tam możesz dodać dodatkowe flagi kompilatora.

Nie jestem pewien, czy jest wiele do zrobienia, więcej kodu oznacza więcej czasu kompilacji, tak po prostu jest. Jeśli nie tworzysz kompilacji release (lub jak to się nazywa w programie Flex Builder), jest mało prawdopodobne, aby Ustawienia kompilatora include optimize na początek. Lepszym wyborem będzie -incremental (która rekompiluje tylko te części, które się zmieniły) i -keep-generated-actionscript (która uniemożliwia kompilatorowi usunięcie plików ActionScript wygenerowanych z plików MXML w Twojej aplikacji).

Bardzo wolę używać mxmlc w wierszu poleceń (za pomocą Ant) w porównaniu do Flex Buildera. Chociaż nie sądzę, aby ten ostatni kompilował się wolniej, wydaje się bardziej powolny pod każdym względem. Korzystanie z Ant pozwala również na więcej niż tylko kompilacja podczas budowania i kompilacja warunkowa (skompiluj SWF lub SWC tylko wtedy, gdy kod źródłowy faktycznie się zmienił). Sprawdź mój post na blogu , aby uzyskać więcej informacji na ten temat.

Możesz wypróbować kompilator Flex shell , kolejne narzędzie wiersza poleceń, które może przyspieszyć działanie. Zasadniczo stara się zachować jak najwięcej pamięci pomiędzy kompilacjami, więc nie trzeba czekać na takie rzeczy jak uruchamianie JVM (kompilator Flex jest aplikacją Java). Na z drugiej strony tak właśnie robi Flex Builder.

 9
Author: Theo,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2008-08-29 16:20:03

Powolny czas kompilacji jest najczęściej spowodowany dużą liczbą osadzonych zasobów ([Embed] lub @Embed).

Opcja 2 w tym artykule może Ci pomóc: [http://www.rogue-development.com/blog2/2007/11/slow-flex-builder-compile-and-refresh-solution-modules/]

 4
Author: Richard Szalay,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2008-08-29 11:14:26

Utworzyłem dysk RAM z przestrzenią roboczą i daje to do 10% lepszego czasu kompilacji. Niewiele, ale coś.

 4
Author: Stanislav Zayarsky,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-10-26 08:44:04

Chcesz co najmniej 4 gigs na komputerze, jeśli to możliwe, i upewnij się, aby zastąpić domyślne ustawienia pamięci, które Eclipse/flexbuilder Daje aplikacji.

Jeśli nie wiesz, jak to zrobić, możesz znaleźć aplikację flexbuilder w /Applications, kliknij prawym przyciskiem myszy i wybierz "Pokaż Zawartość pakietu". Następnie przejdź do pliku zawartości i edytuj zaćmienie.plik ini. Edytuj ten plik z ustawieniami pamięci co najmniej:

-vmargs -Xms768m -Xmx768m -XX:PermSize=128m -XX:MaxPermSize=128m 

Warto też wejść do eclipse/flexbuilder preferencje i zaznaczenie pola "Pokaż status sterty" pod Windows- > Preferencje - > Ogólne (To jest w eclipse z wtyczką FB, zakładam, że jest też tam dla samodzielnego FB).

Pokazuje bieżącą pamięć w prawym dolnym rogu okna i ma małą ikonę kosza, dzięki czemu można wymusić zbieranie śmieci.

Sugerowaĺ 'bym rĂłwnieĹź wyĹ' Ä ... czenie automatycznego budowania projektu po zmianie plikĂłw (moĹźna wymusiÄ ‡ kompilacjÄ ™ przy pomocy cmd-B).

Mieliśmy ogromny projekt z całkiem kilka modułów pliki i wydajność w FlexBuilder 3 był przyzwoity z tych kroków.

 2
Author: Ted Naleid,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-01-16 06:48:36

Przejdź do Project->Properties- > Flex Applications. Wszystkie wymienione aplikacje są kompilowane za każdym razem(nawet jeśli masz domyślny zestaw). Jeśli usuniesz wszystko oprócz domyślnej (nie martw się, nie usunie rzeczywistych plików), kompiluje tylko domyślną aplikację. Spowodowało to dla mnie znaczne przyspieszenie. Jeśli zmienisz domyślną aplikację, zostanie ona dodana do listy aplikacji Flex-dodając czas kompilacji. Będziesz musiał utrzymać tę listę, aby uzyskać najszybszą kompilację.

 1
Author: Suzanne,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-01-15 18:35:38

Zawsze wyłączam "automatyczną kompilację" dla Flex. To kompiluje zbyt dużo, trwa zbyt długo, i tak przerywa moją pracę.

Jeśli masz wiele różnych plików projektu i wszystkie z nich wymagają rekompilacji, ale masz również otwarte inne projekty i nie chcesz ich zamykać zawsze, gdy robisz build, możesz również użyć zestawów roboczych Eclipse.

Niestety domyślny Nawigator Flex nie obsługuje zestawów roboczych. Ale możesz otworzyć Pakiet Explorer w oknie / Pokaż Widok / .... Kliknij na małą białą strzałkę w dół do góry i wybierz Elementy najwyższego poziomu: Zestawy robocze . Następnie można dodawać Zestawy robocze (czyli grupy projektów). Każdy projekt musi być w co najmniej jednym roboczym zestawie (domyślnie"inne projekty"), ale może być w kilku.

Teraz z Project / Build Working Set/... możesz polecić Eclipse zbudowanie wszystkich projektów w tym działającym zestawie, ale żaden z pozostałych. Jest to szczególnie przydatne, jeśli podejrzewaj, że odniesienia do twojego projektu są czasami łamane - w przeciwnym razie budowanie 'najwyższego' projektu powinno automatycznie uruchamiać kolejne Kompilacje.

 1
Author: Zefiro,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-11-03 23:29:09

Jak powiedział Clement, użyj demona kompilatora HellFire. Jeśli masz wiele modułów i więcej rdzeni procesora na komputerze, możesz je skompilować równolegle. Inną opcją jest użycie IntelliJ (wersja komercyjna), która oferuje tę samą funkcję.

 1
Author: Cornel Creanga,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-08-15 09:04:28

SDK 4.x. X wprowadził głupi błąd (Patrz Adobe bugsystem, problem FB-27440), który powoduje, że projekty z SVN lub CVS meta dane kompilują się znacznie wolniej niż z SDK 3.x. x. Jak to naprawić, zobacz tutaj .

 1
Author: Jiri Tobisek,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-12-17 16:05:03

Możesz zapoznać się z kompilatorem wiersza poleceń znalezionym w zestawie Flex SDK, mxmlc. O ile pamiętam, Flex Builder 3 wydaje się ukrywać wszystkie szczegóły kompilatora, ale być może istnieją argumenty, które możesz dołączyć, które pomogą Ci przyspieszyć kompilację.

Na przykład możesz ustawić optimize=false, która pominie krok optymalizacji kodu bajtowego (być może skróci czas kompilacji)? Jest to oczywiście cena wydajności i rozmiaru pliku rzeczywistej aplikacji.

Więcej dokumentacja na mxmlc znajduje się pod adresem: http://livedocs.adobe.com/flex/3/html/compilers_13.html .

Powodzenia!
 0
Author: jcsalterego,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2008-08-29 05:40:50

Nie używam Flex Buildera, ale używam kompilatora Flex SDK codziennie i traciłem mnóstwo czasu czekając, aż kompilator MXMLC wykona swoją pracę, dopóki nie znalazłem powłoki kompilatora Flex:

Http://blog.zarate.tv/2008/12/07/theres-something-called-flex-compiler-shell/

Chociaż teoretycznie Flex Builder już używa tej optymalizacji, może warto sprawdzić.

 0
Author: Juan Delgado,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-09-29 12:27:39

Możesz użyć WORKING SETS aby skompilować tylko zestaw komponentów, które są częścią zmienianej aplikacji, a nie całego projektu

Http://livedocs.adobe.com/flex/3/html/help.html?content=build_6.html

 0
Author: Mauricio Gracia Gutierrez,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-08-08 15:26:10

Zazwyczaj pierwsza budowa trwa najdłużej, a potem jest dość szybko. Korzysta z Vista x64 w / core 2 duo.

W przeciwnym razie jestem prawie pewien, że procesor Intel Core i7 Extreme Edition 965 3.2 GHz przyspieszyłby ładnie budowanie Flex .. :) :) :)

 -1
Author: Scott Evernden,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-01-16 06:59:06