片段合并
Alan Leung,软件工程师
更新于 2012 年 6 月
随着大型 GWT 应用的功能不断增长,开发人员倾向于添加更多拆分点(调用 GWT.runAsync),以确保初始片段的大小尽可能小。保持初始片段较小可以确保应用尽快启动。
但是,添加更多拆分点也会增加两个片段共享公共代码的可能性。
如该图所示,GWT 编译器为每个拆分点创建一个独占片段,并将所有共享代码添加到剩余片段中。结果是,随着开发人员添加更多拆分点,项目的剩余片段会逐渐变大。虽然这不会影响项目的初始加载时间,但第一个请求的拆分点的延迟通常会受到影响。
GWT 2.5 的新功能是**片段合并**。我们赋予了代码拆分器自动将多个独占片段合并为单个片段的能力。
该图显示了编译器意识到 E1 和 E2 共享足够的代码并自动将这两个拆分点捆绑到一个片段中的情况,有效地将共享代码从剩余片段中拉出。当应用需要 E1 或 E2 时,它会下载整个捆绑包。这不仅减小了剩余片段的大小,还减少了用户会话中的总 HTTP 请求数量,假设最终将需要许多片段。
要启用此功能,只需将 -XfragmentCount x 添加到 GWT 编译器命令行,代码拆分器将尝试将独占片段的数量限制为 x。这里,x 是独占片段数量的下限。当编译器决定将尽可能多的拆分点合并在一起可能没有益处时,实际数量可能大于 x。