voi*_*ter 4 browser caching threadpool
我很久以前就设计了一个想法,并且从来没有实现它,我想知道它是否可行,因为它可以显着减少现代浏览器的加载时间.它依赖于以下事实:相关任务通常在批量完成时更快地完成,并且浏览器可以使用统计模型在不同页面上下载内容,而不是在用户浏览时空闲.我在下面摘录了我最初写的内容,其中描述了这个想法.
当人们访问网站时,我推测概率密度函数P(q,t),其中q是表示网站ID的实值整数,t是另一个实值,非负整数,表示时间当天,可以准确地预测典型人访问的网页顺序,以保证请求和加载用户将要提前阅读的HTML文档.对于给定的网站,使用看起来是网站"主页"的文档,用户通过其访问其他部分,由树结构的根表示.用户访问树的根节点的概率可以用两种方式表示.如果用户希望允许进程在操作系统的初始化时自动执行以从网站预先获取网页(使用稍后详述的过程),用户在打开网络浏览器时经常访问该网页,则概率函数确定是否给定网站将预先获取其网页可以使用基于用户历史(或通过手动输入)的自适应启发式模型来确定.否则,如果用户不需要这样的过程,则根节点的P值是无关紧要的,因为预取过程仅在用户访问网站的主页面之后使用.
前面描述的树中的孩子每个都与个体概率函数P(q,t)相关联(该函数可以是存储时间 - 网页对的查找表).因此,使用该树结构记录用户随时间访问的网页序列.例如,在上午7点,我可能有71/80的机会在加载该网站的主页后访问Reddit上的"WTF"部分.基于树中每个节点的p>可执行性函数P的值,从根节点延伸一定深度的网页链,其中遵循每个序列的净概率P_c超过某个阈值P_min,用户访问网站主页时请求.如果在处理另一个网页之前完成一个网页的下载,则使用线程池,以便为另一个核心分配解析要解析的网页队列中的下一个网页的任务.希望以这种方式,用户点击的那些网页的大部分可以比其他方式更快地显示.
我遗漏了许多细节和优化,因为我只想简单描述一下我在想什么.非常感谢你花时间阅读这篇文章; 如果你有任何问题,请随时提出任何问题.
有趣的想法 - 虽然没有你提出的大脑,但已经有一些在浏览器中进行预取的实现 - 这可能会有所帮助.我认为这个计划存在一些缺陷:
a)在大多数情况下,网页浏览对于大多数用途来说足够快.
b)带宽正在变得计量 - 如果我只是浏览主页,我作为用户想要付费来服务其他页面.此外,在这类事物可能有用的情况下(例如 - 慢速3g连接),带宽往往更加紧密.并且可能不太擅长并发(例如 - CDMA 3g连接).
c)从服务器运营商的角度来看,在大多数情况下,我宁愿只提供请求的页面.渲染无法看到的页面会花费我的周期和带宽.如果您喜欢很多人并且在某些云计算平台上,那么您需要按周期和字节付费.
d)需要重新构建大量的分析系统,其中许多仍然依赖于request == impression的理论
或者,简短的总结是,确实没有必要预先监视人们为了加速服务和呈现页面而查看的内容.现在,像这样的东西可能真的有用的地方将是"嘿,如果你喜欢X你可能喜欢Y"然后弹出链接等所述内容(或产品)给人们.