--- Steve Loughran <[EMAIL PROTECTED]> schrieb: > Michael Meyer wrote: > >> --- Steve Loughran <[EMAIL PROTECTED]> schrieb: > >>> this is really interesting. I'd thought javac > was > >>> unthreaded too, but > >>> even so you'd expect file IO to work in the > other > >>> CPU, so get a boost > >>> from the second core. > >>> > >>> what happens when you try a different javac, > like > >>> the eclipse one? > > > > In order to rule out any pathologies in my ant > build > > file or my source code, I benchmarked a compile > run > > again, this time the compilation of the Ant 1.7.0 > > source code. > > > > Additionally, I have deinstalled the powernowd > > package, so the frequency of the cpu is not > reduced > > when idle, rather all the time at 2.4 GHZ (Intel > Core > > 2 Duo E6600). > > > > Compile run this time with: > > > > ant clean ; ant build ; ant clean ; sleep 10 ; > time > > ant build > > > > (This way, every file to be compiled and the jdk > files > > are preloaded into memory, and before the timed > ant > > build there is a wait period of 10 seconds so that > the > > journal daemon from the ext3 file system can write > all > > emitted byte code files (done every 5 seconds by > > default) before the actual compile run starts.) > > > > -this is interesting stuff. Stick it up on a web > page and I'll point to it. > > At the same time, I dont know why it is happening. > It does hint at > something I've been seeing on my desktop though, in > which builds in > VMWare images (with a single CPU option) seem faster > than the stuff on > the main desktop. > > 1. I wonder if we are doing some kind of > synchronisation on I/O that is > causing us to take longer to acquire locks? > > 2. A good test would be to focus on javac and see if > a .sh script to > build the classes shows the same slowdown. if it > does, its a javac > problem. If it doesnt, its an ant problem. >
I did only manage to do a quick javac run with the Main java class: time javac -sourcepath src/main/ src/main/org/apache/tools/ant/Main.jav 1 core: real 0m1.900s user 0m1.812s sys 0m0.040s 2 cores: real 0m1.436s user 0m1.828s sys 0m0.076s whereas the complete compile run with ant (time ant build) was: 1 core: real 0m4.520s user 0m4.312s sys 0m0.176s 2 cores: real 0m8.150s user 0m14.849s sys 0m0.400s (both with the Sun JDK 6 Update 5). So I guess this hints strongly to ant and not the compiler antd/or vm causing the slowdown on two cores. There is a tiny overhead with two cores at the user and sys times, but real (the actual wall time) goes down by almost 25% on two cores, despite the fact that javac does not seem to be multithreaded. So this effect will be caused by the I/O operations done by the OS on the second core, as you mentioned. On the other hand: the actual wall time of the complete ant build is 80% slower on two cores than on one core. This is caused almost solely by the 244% increase of the user time (sys time increased by 127%, but very low absolute). The sys time of the compile run without ant is only increased by less than 1%. As the main part of the bump in the wall time clock is caused by the 244% of the time spend in user space, this might suggest, that it has nothing to do with I/O synchronisation, but instead it must be caused by some actual part of the ant code? Or am I wrong? Lesen Sie Ihre E-Mails jetzt einfach von unterwegs. www.yahoo.de/go --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]