On 09/07/2013 23:45, Fabrice Desre wrote:
On 07/09/2013 02:25 PM, Nicolas B. Pierron wrote:

I agree, and where I think packaged app (zip of all used files) are good
for the size of the initial download (even if they are way smaller than
Android ones) but I do not think this is good for updates.  Suppose, I
have a web site with 10 pages.  I want to add an extra page.  I will
probably modify one existing page and add the new page into the zip
file.  Why should we re-download all resources, instead of the 2
modified files?
True, and I'd like us to support differential updates, at least from
version N-1 to version N. Someone at version N-2 updating to version N
would need to do a full update.

Packaged apps have the advantages of providing a way to do one network
access to see if a new version is available where app-cache will do one
access for each page, and might even get an inconsistent update.  To
solve that we can only check the manifest file for updates, and assume
that the manifest file (if present) ensure that other resources present
in the app-cache are still valid.
appcache also does a single check by downloading the manifest. Only if
this one has changed are the other resources checked.

Packaged apps are smaller and faster to read, as they are contained in
one monolithic zip file.  But I do not see any limitations in Gecko for
building a zip file out-of the app-cache manifest.  On the contrary, we
can even do better by sorting the files in function of the order in
which they are listed in other pages or how frequently they are used.
Fwiw, we did zip reordering at some point and that was not helping with
startup time, so that didn't land.

In addition, if we are packing our-self the resources, we can re-pack
them with additional meta-data such as the pre-compiled code for asm.js
or the pre-parse lazy-script & bytecode for non-asm.js code.
How much would we gain from doing that?

Load time and memory depending on the scripts content. The mechanism to store the cache version is still to be defined though and it needs to be defined if it is faster to retrieve a small script or to parse it. I think the first target is apps (offline cache or packaged) but ultimately it can affect hosted content if I have understood correctly.

Combine with sharing bytecode data this should also be a nice memory win if you have many tabs opened using the same script.

        Fabrice

_______________________________________________
dev-b2g mailing list
[email protected]
https://lists.mozilla.org/listinfo/dev-b2g

Reply via email to