这应该是一道标准的初中数学题吧,至少初中学历的应该能看得懂吧~(我猜的/逃

既然有看得懂的能力,那就开始吧~


题目告诉我们两个关键词是HTTP请求数网页传输时间,那么其他的一些额外条件和影响因素就需要我们去假设,那么就~

假设有资源 r1, r2, r3, r4..., rn,其大小分别为 s1, s2, s3, s4..., sn。当前网络环境是稳定的,每建立一个HTTP连接所耗时为t,网络传输速度为b。这里由于是对同一个站点的请求,请求不同的资源时所发送的请求时间p应该相同,等待资源进行传输的时间w也应该相同(这个时间也可以认为是从服务器收到请求到开始传输返回结果的响应时间)。在现代浏览器中,常采用同时建立多个连接方式并发获取资源,这里假定并发连接数为h。传输所有数据消耗的时间分为四个部分:连接建立,发送请求,等待传输,资源传送。不考虑连接销毁的情况。

我们再简单列出我们的假设好的一些变量和常量

  • 资源有 r1, r2, r3, r4..., rn

  • 资源大小 s1, s2, s3, s4..., sn

  • 一个HTTP连接耗时t

  • 网络传输速度b

  • 发送请求时间p

  • 等待资源进行传输的时间w

  • 并发连接数h

那么在未优化时,传输所有数据需要耗时为T1:

$$T1=t+np/h+nw/h+(s1+s2+s3+s4+...+sn)/bh$$

化简为:

$$T1=t+n(p+w)/h+(s1+s2+s3+s4+...+sn)/bh$$

假设优化后,资源数量减少到k,那么资源有 R1, R2, R3, R4..., Rk,其大小分别为 S1, S2, S3, S4..., Sk。建立连接需要消耗的时间t,网络传输速度b,发送请求时间p,等待资源传输的时间w,并发连接数h均不变。

那么在优化后,传输所有数据需要耗时为T2:

$$T2=t+kp/h+kw/h+(S1+S2+S3+S4+...+Sk)/bh$$

化简为:

$$T2=t+k(p+w)/h+(S1+S2+S3+S4+...+Sk)/bh$$

还有一个重要因素,为了保证优化前和优化后,用户都能看到是同一个网页内容,减少资源数量的方式采用的是合并资源,说明 s1+s2+s3+s4+...+sn = S1+S2+S3+S4+...+Sk,合并资源不会造成资源的总大小发生变化。故优化后,减少的网络传输时间为:

$$T1-T2=(n-k)(p+w)/h$$

看到这里,不要告诉我已经忘了公式中的字母代表意义。好吧,我知道了,其中

  • n为优化前的资源数

  • k为优化后的资源数

  • p为发送请求时间

  • w为等待资源传输的时间

  • h为并发连接数

通过上面的推理证明可知,要使网页传输时间获取最小值,则k取最小值1,资源最多只能合并为1个。当然在实际情况下,k值应取合理值。

同时,我们还发现发送请求时间p与等待资源进行传输的时间w也是对网页传输时间有着巨大的影响,用户可以通过升级上网宽带等方式实现缩短发送请求时间,和站长提升服务器性能等方式实现缩短等待资源传输的时间来提高上网体现。

那么最后一个问题是,你看懂了吗?

文章首发于 https://www.linpx.com/


Chakhsu
236 声望19 粉丝

写写代码而已···