Generic Bundling

Jonathan Bond-Caron jbondc at gdesolutions.com
Sun Oct 27 06:22:24 PDT 2013


On Fri Oct 25 11:48 PM, Ilya Grigorik wrote:
> On Fri, Oct 25, 2013 at 6:24 AM, Jonathan Bond-Caron <jbondc at gdesolutions.com <mailto:jbondc at gdesolutions.com> > wrote:
> 	I disagree, if you want to treat this as an "optimization problem", let's look at it:
> 	1. x number of resources/files
> 	2. x number of network connections
> 
> 	What is the optimal way of loading the resources/files?
> 	I don't have a proof but I'm pretty sure that's NP-complete.
> 
> I assure you it is not NP-complete. We know what the critical resources are for the page (i.e. their priorities), and we know the properties of TCP connections (like slow-start). The optimal number
> of connection is 1 (with exception of few edge cases where TCP window scaling is disabled and BDP is high).

Let's look at use a case: 200mb application I want to distribute over internet.
The optimal number of connections is 1?

You wouldn't get faster delivery with a P2P-like algorithm?
e.g.:
Server sends a header:
Cache-clients: my-neighbor.com:4000, my-other-neighor.com:6000

Some security considerations for sure but your claim that 1 connection is optimal is bogus at best. 

> 
> 	Are you saying that HTTP 2.0 loading is the best known algorithm in all cases?
> 	That's bogus. It's certainly a better algorithm but there's a wide range of strategies that will result in faster load times (it involves bundling in some cases).
> 
> Bundling does not achieve anything that a good multiplexing solution can't -- bundling is multiplexing at the application layer. HTTP 2.0 provides the necessary tools to achieve same performance as
> bundling, but with additional benefits of granular downloads, incremental execution, etc. (I feel like I'm stuck in a loop ;-))

That's interesting, marketing will usually say "but that's just an engineering problem", engineering will say "but that's just marketing".

In this case, "that's just at the application layer", so I'll answer "that's just at the network layer".

How would you suggest to deliver an application over internet (e.g. myapp.zip)? Isn't that a bundle already?

I agree that delivering a single.zip makes the user wait vs. delivering images etc.. progressively. But in some cases that might be ok:
- ios app (splashscreen, user waits)
- android app (splashcreen, user waits)
- windows 8, ...
- flash, ...

It depends on the use cases, bundling certainly has its advantages at the application layer.



More information about the es-discuss mailing list