I've been doing some experimentation in an environment that potentially 
benefits substantially from a native client, a Raspberry Pi.  While not 
technically a "native" client, I've been able to get basically instantaneous 
tcp connections directly from the bash shell, and have tested with a small 
running java program over socket comms.  After convincing myself that the 
concept works for small things, going against the complete Gradle application 
was the next step.


Empty project (no build.gradle)

Gradle daemon startup - 54-62 secs
Gradle "tasks" with JVM startup: 15-29 secs
Gradle "tasks" with my simple ascii-based bash client: 4-8 secs


Some of my testing gets a bit skewed because following the hacked-in pattern 
for the server side as found on the git native-client branch results in 
CloseInput objects getting returned from receive() by whatever is calling it 
basically as fast as it can and logging that output to the daemon log file.  
Not sure what I'm doing wrong there.


The JVM is clearly not optimized for this platform given that 1.7.0_06 is the 
only version that works, and this is clear when running the latest groovysh 
that is significantly slower than working in a python shell.
Clearly there is an up-front savings of several seconds, but I might have also 
convinced myself that things are just too heavy-weight in general to attempt to 
build with gradle directly on the Raspberry Pi itself, at which point I don't 
need a native client.


I had really hoped to teach some kids Java/Groovy on some Raspberry Pi's, but I 
think I'm going to have to stick with Python and C/C++.


-Spencer

Reply via email to