Use a machine with at least 8G RAM, quad core for GWT development. Anything less than that would be catastrophic and unproductive.
Ideally 8 core, 12 GB.
Increase your eclipse jvm vm heap size max, at startup.
Default eclipse startup is either 256M or 512M. It should be at least 768M. I have tried 1024M which
made only a marginal difference above 768M. I found 900M seems to be
the most that would be used in my cases.
You may have to increase your permgen memory allocation too. I think
permgen space is used for storing class definition and are never
garbage-collected. I presume that when my eclipse hung indefinitely
was when there was no more permgen space to store new class defn.
I have never had to redefine the stackspace allocation for eclipse.
You can google around to find out the jvm startup arguments to define mem allocation. e.g. -Xmx, etc.
Initially develop only for a single browser. Decide between using FF
or Chrome as your dev browser. Then tune your entrypoint gwt.xml to
set the user-agent property for that browser. Google on gwt set
property user-agent. Compiling for only one browser, I have found,
speeds up the compilation a lot.
Don't ever store your projects, source files, resources or libs
that are accessed by the compiler, in a network or usb drive. All your
compilable/includable resources should be on your local drive.
Try to use maven or some other tool for dependency management, so that you do not need to access your jars or dependent projects over the network.
Do not, ever, let your development strategy roll down the hill by
depending on live-project dependencies. Having workspace with 50 or more
projects is disaster and signifies a development team in crisis.
The compulsive and persistent compilation, scanning of projects by
eclipse background take a huge toll on the performance of eclipse.
Try to disable as much validation as possible. e.g., disable html and
javascript validation.
If you have a huge number of server side projects ...
You need to re-architect your development strategy to cluster your 50 - 100 projects into project packages, so that each project package has no more than 20 compilable/validateable project members (ideally less than 5 projects). Each package is frozen by versions and packaged as jars. Use only the jars for development dependencies.
Your programmers need to learn not to have the impulse to work on a workspace with 200 projects. Enhancements are reserved for bugzillas of each project package. Having a 200 project workspace is bad project management. It wastes your programmers' time by having eclipse slow down now and then.
- Have sufficient temp space (or for Windows sufficient slack space on
the user disk). I have experienced that insufficient disk space for
compiler buffering/caching has caused slow-downs and hang-ups. Having
a 5G slack space is the minimal - the more the merrier so as to
preclude having to clear the trash or search for files to delete or
clear the GWT compiler generated temp files. A 5G slack space is still
very inconvenient.
AFAI have experienced, neither windows 7/vista or linux made much performance difference except that eclipse seems to start up much slower on Windows.
Therefore, if you know how to tune your anti-virus, may be you should
tell the anti-virus software to skip scanning the workspace and project folders.
Unless you have an 8-core 12GB machine, you should disable most of windows
aero, trasparency. But you need to keep windows compositing
(otherwise you would destroy your eyesight looking at the bad fonts).