Будут ли многоядерные процессоры и дополнительная память минимизировать время сборки GWT в «режиме разработки»? - PullRequest
2 голосов
/ 02 июля 2011

Я заинтересован в минимизации времени между каждой итерацией моей разработки программного обеспечения GWT.Моя среда: Eclipse + плагин GWT Eclipse от Google + GWT 2.3 SDK.


Многоядерный:

Большую часть времени ( около 90% ) я трачу наРазработка GWT проводится в ожидании обновления браузера после того, как я внес некоторые изменения в код в режиме разработки. (1.) Если я перенесу свою среду разработки на большой сервер с 24 ядрами, сможет ли «режим разработки» GWT каким-либо образом использовать дополнительные ядра?

Память:

«Большой сервер» также имеет 32 ГБ памяти, я знаю, что вы можете выделить больше памяти для конфигурации работы GWT, изменив «-Xmx512m», чтобы указать больше памяти. (2.) Будет ли выделение большего объема памяти с помощью переключателя командной строки '-Xmx' ускорить время обновления?

(3.) Еще один способ сформулировать вопрос 1 и 2 - этоСпросите: Что такое «горлышко бутылки» для времени обновления во время «режима разработки»?


(Менее важно (потому что я не делаю полные компиляции часто, как правило 90/10 * 1024)*): "GWT Compile" выигрывает от большего количества ядер? "GWT Compile" выигрывает от большего количества памяти?)

Ответы [ 4 ]

3 голосов
/ 02 июля 2011

Я трачу впустую разработку GWT на ожидание обновления браузера после того, как я внес некоторые изменения в код в режиме разработки

Ресурсы немного помогут, но еще больше помогут оптимизировать ваш код и сделать его более компактным. Меньше раздувать, меньше сценариев, меньше мусора.

Речь идет не о компиляторе, а о том, чтобы ваша страница загружалась быстро.

Больше кэширования, более ленивая загрузка, больше минимизации ресурсов.

2 голосов
/ 29 января 2012

Это частый вопрос о SO, см. Старую ветку '09 здесь .

Вот что я узнал, работая с крупногабаритными проектами GWT в прошлом году:

  • GWT будет использовать все ядра, если вы не скажете, чтобы это было не через -localWorkers (N-1 хорошо, если вы можете сэкономить).
  • GWT любит I /О, у меня есть проекты, которые встраиваются в 5 с на моем ядре 8GB / 4 / SSD.
  • Работа в режиме Dev (он же Hosted Mode) экономит массу времени.Просто нажмите F5 в браузере.
  • Включите флаг -draftCompile и не оптимизируйте его для сборки dev.

Но самое главное - Не надоt построить то, что вам не нужно, чтобы построить !

Убедитесь, что вы используете только необходимые перестановки (user.agent).Моя компания поддерживает только FF, что означает создание только 1 перестановки, а не 6. Вы также можете свернуть перестановки , если вам нужно больше 1.

Когда у нас есть множество виджетов или модулеймы работаем над этим, мы помещаем их в модули библиотеки GWT и собираем их отдельно, используя Maven.Если вы сделаете это, то сможете их закрепить и не тратить время на создание проекта whole при каждом обновлении, а только на характерные элементы вашего текущего модуля.

1 голос
/ 02 июля 2011

После того, как я перешел с двойного Pentium-D на Quad Core2 и с гигаблоками памяти, время моей компиляции значительно сократилось. Например, от 10 до 3 минут, если говорить анекдотично.

Я также перешел на запуск Eclipse в Linux и вижу заметное улучшение отклика от eclipse. Я использую Ubuntu 64bit.

Вместо Firefox или, т. Е. Я использую Google Chrome, и я считаю, что хром реагирует лучше.

Без какого-либо технического инсайдерского знания я бы сказал, что число ядер помогает, но только до определенного количества ядер. Я предполагаю, что причина в том, что чем больше у вас ядер, задачи ОС оставят больше ядер без дела для вашего удовольствия от разработки. Eclipse jvm с двумя ядрами будет конкурировать с ОС и браузером.

Сам браузер тесно связан с многозадачностью и многоядерным параллелизмом ОС. Поэтому наличие большего количества ядер поможет в отладке в размещенном режиме.

Но после определенного увеличения количества ядер и памяти, и если вы являетесь единственным пользователем машины, вам больше не нужно извлекать выгоду из дальнейшего увеличения количества ядер и памяти, поскольку избыточные ядра и память не больше не будет использоваться ни jvm, ни ОС.

Итак, еще раз, скажем так, 2 ядра для вашей ОС, столько ядер, сколько у вас открыто гиперактивных хромированных вкладок, и одно ядро ​​для jvm.

Допустим, вы

  • смотрите Battlestar Gallactica на Hulu на одной вкладке = 2 ядра (одно для браузера и одно для flash)
  • следите за ценами акций AAPL и GOOG на одной вкладке = 2 ядра (одно для браузера и одно для flash)
  • плюс 2 ядра для задач ОС
  • плюс 2 ядра для вкладки вашего хост-режима
  • плюс 1 ядро ​​для вашего затмения JVM.

Таким образом, в худшем случае будет иметь 9 ядер, а за его пределами вы не получите никакой выгоды от увеличения количества ядер. Для каждой вышеперечисленной задачи анекдотически назначается 1 ГБ физической памяти. Следовательно, для описанного выше сценария любое увеличение памяти свыше 6 ГБ не должно помочь.

КЭД - анектодально. Анекдотически, я имел в виду.

1 голос
/ 02 июля 2011

Я не уверен, что хост-режим выигрывает от большего количества ядер. GWT 2.4 обещает значительно повысить производительность для хост-режима, а SSD наверняка поможет ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...