On Sat, Oct 10, 2009 at 2:11 AM, Vladimir Sizikov <[email protected]> wrote:
> What's the driving force behind this? Is this because of limitations
> of GAE or something else?
Both GAE and Android have size restrictions, but I'd like to get the
main jar smaller just as a practical matter.
> I've recently played with jruby-complete.jar to see how its size and
> compression affect the startup performance, and it turned out that
> uncompressed JAR is much bigger but allows to save 0.1 - 0.2 secs from
> startup. :)
Yeah, I'm sure it does help, but probably not enough that it would
matter for server scenarios. I guess I'm also interested in it for
download size, though I realized last night that even the Windows
installer + JRE is smaller than the one-click installer.
> Also, using pack200 produces some pretty big size savings:
>
> Before pack: jar-complete is 10.5Mb.
>
> After pack, via
>
> pack200 -G -O jruby-complete.jar
>
> the size is 9.0Mb. Not bad. But it strips all debug info in process of
> repacking, and reorders files. The help says that one needs to be
> careful with -O command line switche though, they somehow might affect
> JAR access optimizations.
>
> It seems that stripping the debug info is the biggest factor that
> allows to reduce the size here.
Hmm interesting. So this shrinks it but also damages accurate Java backtraces...
Main .jar, before:
-rw-r--r-- 1 headius staff 8004060 Oct 10 15:23 jruby.jar
Main jar, after:
-rw-r--r-- 1 headius staff 6694569 Oct 10 15:26 jruby.jar
And still executable, which is impressive. However:
~/projects/jruby ➔ jruby -J-Djruby.backtrace.style=raw -e "def foo;
raise; end; foo"
Thread.java:1460:in `getStackTrace': unhandled exception
from null:-1:in `setBacktraceFrames'
from null:-1:in `setException'
from null:-1:in `<init>'
from null:-1:in `raise'
from null:-1:in `call'
from null:-1:in `call'
from null:-1:in `call'
from null:-1:in `cacheAndCall'
from null:-1:in `call'
from -e:1:in `method__0$RUBY$foo'
from __dash_e__#foo:-1:in `call'
from __dash_e__#foo:-1:in `call'
from null:-1:in `cacheAndCall'
from null:-1:in `call'
from -e:1:in `__file__'
from -e:-1:in `load'
from null:-1:in `runScript'
from null:-1:in `runNormally'
from null:-1:in `runFromMain'
from null:-1:in `run'
from null:-1:in `run'
from null:-1:in `main'
Rather difficult to debug :)
- Charlie
---------------------------------------------------------------------
To unsubscribe from this list, please visit:
http://xircles.codehaus.org/manage_email