Hi Richard,

IMO it's not important to put all JAR files into one. It's important to 
reduce your absolute number of files. Each initial file access costs a 
little time, but it doesn't really matter if you access 30 jar files or 1. 
What makes a difference is wether App Engine needs to load 2000 class files 
one by one, or if they are all inside a handful of jars. 

I'd also consider moving all other files, like property-files and HTML 
files (in case your app parses them) into those jars. Made a huge 
difference for me.

Good luck!
Per




On Saturday, June 23, 2012 7:22:34 AM UTC+2, Richard Watson wrote:
>
> Hi Will,
>
> I also tried bundling (most [1]) jars into one but it didn't seem to move 
> the needle at all, once classes were jarred.  I did perceive a lower 
> initial-RAM level - I think it was about 4 or 5 megs lower but I didn't 
> test that too carefully.  Is your load-time difference compared to unjarred 
> classes, or to multiple jars only?
>
> I did think to try bundling only the jars my app would need on startup, to 
> reduce the overall initial load.  Does Java have to inspect the contents of 
> all jar files to figure out where required classes are?
>
> Richard
>
> [1] GAE deployment complained my 1-jar solution was too big, so I wrote an 
> ant task to jar-up only the jars below a certain size and leaving very few 
> bigger ones. Went from 50+ to about 8. But again, no perceived load-time 
> improvement once the classes were jarred.
>
> On Friday, June 22, 2012 8:35:11 AM UTC+2, Will Rayner wrote:
>>
>> Hi all,
>>
>> I've also been battling with with java warmup times. Last week I had 
>> startup time of at least 37 seconds. Now it's hovering around 16.
>>
>> My performance improvements were made by bundling all my dependencies 
>> together into a single jar. I've been using the excellent gradle gae plugin 
>> (https://github.com/bmuschko/gradle-gae-plugin), which integrates with 
>> https://github.com/musketyr/gradle-fatjar-plugin/. This could easily be 
>> integrated with an existing gradle project in under an hour.
>>
>> We're using Resteasy, Htmleasy, soy templates, hibernate orm and 
>> validator. There were about 60 jars in my WEB-INF/lib.
>>
>> Regards,
>> Will Rayner
>>
>>
>> On Friday, June 22, 2012 1:18:51 PM UTC+10, Thomas Wiradikusuma wrote:
>>>
>>> I have updated 
>>> http://code.google.com/p/googleappengine/issues/detail?id=7706 with 
>>> this information.
>>>
>>> On Monday, 18 June 2012 11:44:29 UTC+8, Takashi Matsuo (Google) wrote:
>>>>
>>>> On Mon, Jun 18, 2012 at 9:57 AM, Thomas Wiradikusuma 
>>>>  wrote: 
>>>> > Just my 2 cents, 
>>>> > 
>>>> > If indeed our app needs to be single-JARred and obfuscaticated (at 
>>>> least removing unused code), IMO that feature should be baked in the tool. 
>>>> Probably triggered with extra flag. 
>>>>
>>>> I think this is also a good feedback especially if creating the single 
>>>> JAR contributes the performance. I'd appreciate it if you could file 
>>>> an issue. 
>>>>
>>>>

-- 
You received this message because you are subscribed to the Google Groups 
"Google App Engine" group.
To view this discussion on the web visit 
https://groups.google.com/d/msg/google-appengine/-/H1eqfW8o0vQJ.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/google-appengine?hl=en.

Reply via email to