Thursday, June 18, 2015

Re: How to deal with large multi-module applications on GWT

Hello Jens!


Well, today we have more than 250K java lines of client code divided in around 50 modules compiled in 4 permutations (2 browsers and 2 languages).

I would say that full clean-build, let's say for a release or in continuous integration, could actually take up to 30 min and would not be a problem. But I can not let this grow indefinitely in memory, it would be a problem even for a server.


Today I had to increase again maxHeapSize of the build as it surpassed 3GB. All our developers have new core i7 machines with 8gb of RAM. For dev we are working with strategies as commenting out groups of modules that we are not working on to improve compile time and memory consumption.


What we need is to structure better our projects to decrease the memory footprint for dev and CI environment and compile time for dev
We plan on increasing a lot our code base and with the current structure it will really soon become unsustainable.



Em quinta-feira, 11 de junho de 2015 19:32:59 UTC-3, Jens escreveu:
AFAICT the amount of GWT modules shouldn't noticeably influence the compilation time.

What increases compilation time is lines of code obviously, the amount of permutations that need to be compiled (for example I18n can produce lots of permutations), wether or not you use more than one worker during compilation (parameter -localWorkers) and finally outdated CPUs and RAM shortage (GWT developers should have decent machines to work with, not that 5 year old 3GB Windows 7 notebook).

So for production builds or test builds you probably don't care about the compile time as these builds are done on build servers anyways. For the occasional development compiles you can decrease compilation time by limiting permutations to a single one and skip most optimizations by using the -draftCompile parameter.

How many lines of client side GWT code does your app have and how many permutations do you produce? A compile time of 8-12 minutes doesn't sound too unreasonable if the app is already large or has lots of permutations.


-- J.

--
You received this message because you are subscribed to the Google Groups "Google Web Toolkit" group.
To unsubscribe from this group and stop receiving emails from it, send an email to google-web-toolkit+unsubscribe@googlegroups.com.
To post to this group, send email to google-web-toolkit@googlegroups.com.
Visit this group at http://groups.google.com/group/google-web-toolkit.
For more options, visit https://groups.google.com/d/optout.

No comments:

Post a Comment