Peng,

Just for reference, here's some comparative data:

Here at Sun, on a dual 2.2Ghz Opteron w/ 4gb of RAM, it takes around 30 minutes to do a build.

The parameters you've set are reasonable, though as Kelly indicated, just look at the 'hotspot/make/Makefile' to build the VM by itself (that is, you don't have to invoke Make from the top-level JDK directory, you can do it from inside the hotspot directory, referencing the above Makefile).

That said, here's a few things that might speed up your build:

(1) look for a tool called 'ccache', which is _very_ useful in caching outputs from GCC so that rebuilding time can be cut down quite a bit.

(2) build in a ramdisk. This is by far going to be the biggest speedup, as a major issue in build times is disk I/O. Look here on Wikipedia for info about how to use TMPFS under Linux: http://en.wikipedia.org/wiki/TMPFS if you can't fit the entire source and object code in a tmpfs, then at least set the TMPDIR env variable to point to a tmpfs location, so that the object and intermediary code files get built in ram.

(3) If you only have a dual-core system (i'm assuming some sort of Core 2 Duo machine, or an older Pentium D), than I would recommend using only 3 build threads, not 4. Hyperthreading is nowhere near as efficient as a "real" core, and the associated context switching is expensive. For a build, where you are doing large numbers of relatively small (and short-lived) processes, hyperthreading is inefficient (for a variety of reasons) and is probably actually hurting you more than helping.

-Erik


Peng Du wrote:
Hello, guys

Recently, I am working on some slight modifications of Hotspot VM without touching the JDK part. So, I have to compile Hotspot quite frequently. However, the build is awfully slow on my machine with a Intel 2.4G dual core CPU, 3G memory, and OpenSUSE11. It takes about 2-3 hours for one build.

Here is the relevant fragment of my build script:
==================================
export MAKE_VERBOSE=true
export DEBUG_GDB3=true
export ARCH_DATA_MODEL=32
export ALT_PARALLEL_COMPILE_JOBS=4
export HOTSPOT_BUILD_JOBS=4

export BUILD_HOTSPOT=true

export BUILD_LANGTOOLS=false
export BUILD_JDK=false
export BUILD_JAXP=false
export BUILD_JAXWS=false
export BUILD_CORBA=false
export BUILD_DEPLOY=false
export BUILD_J2SE=false

export DEV_ONLY=true
export SKIP_DEBUG_BUILD=false
export SKIP_FASTDEBUG_BUILD=true
==================================

Any ideas on how to tune this to speed up the build? Or, are there problems with the script?

Thanks!

Peng Du
2/7/2009



--
Erik Trimble
Java System Support
Mailstop:  usca22-123
Phone:  x17195
Santa Clara, CA
Timezone: US/Pacific (GMT-0800)

Reply via email to