Ok, after digging more into CodeSplitter and AsyncFragmentLoader classes, I
can say now that it is simply not possible (under the control of Lex
obviously).
CodeSplitter relies on CFA (Control Flow Analyzer) to extract the
dependencies. If the user code is not natively modular (Spaghetti code), the
compiler will flag every types as "shared" and let the code go into the
leftovers fragments (or the initial one). We would end up with a big (huge?)
fragment with no real way to find out automagically the ideal split points
.
As Lex would say "It's simply devilish to come up with a precise splitting
algorithm that does so"
Too bad :-)

Sami

On Thu, Oct 1, 2009 at 5:43 PM, Ian Petersen <[email protected]> wrote:

>
> On Thu, Oct 1, 2009 at 8:18 AM, Sami Jaber <[email protected]> wrote:
> > Yes you are right, but do you really think that in the case of a failure,
> > you would try to change your code flow differently depending on where you
> > are ? Except displaying a generic message, you won't be able to go
> further
> > as I understand the mechanism.
> > Concerning the second point, this is the crucial question. There are a
> few
> > scenarios that could be conceivable.
> > We can imagine that a permuation of 1 Mo could be splitted into 2 chunks
> of
> > 500 Ko or 4 chunks of 250 Ko of 10 chunks of 5 Ko, that is what I call a
> > "balanced tree" or "balanced split points". Most people would probably
> want
> > to split their permutations only to get responsiveness and decrease
> startup
> > time without digging more in the code flow...
> > But if you say that it is not possible at all, I believe you ...
>
> I'm not sure that it's not possible, I think it's more that doing it
> under automatic control is undesirable.  A split point will, on first
> execution, introduce a delay in processing.  Such delays can be
> acceptable if the programmer can control where they go.  If the
> compiler introduces a delay at an apparently random place in the code,
> the delay could very well be disruptive.  Forcing the programmer to
> choose when to allow delays and when not leaves the control in the
> programmer's hands, and prevents automatically-generated catastrophes.
>
> Ian
>
> >
>

--~--~---------~--~----~------------~-------~--~----~
http://groups.google.com/group/Google-Web-Toolkit-Contributors
-~----------~----~----~----~------~----~------~--~---

Reply via email to