gpt4 book ai didi

gwt - GWT 的 UiBinder 真的能提升应用性能吗?

转载 作者:行者123 更新时间:2023-12-04 14:07:16 24 4
gpt4 key购买 nike

我在 2 年前读过一个关于 UiBinder 性能的回答 https://stackoverflow.com/a/3755675/1067931
并决定对其进行测试。

我构建了一个非常复杂的布局,有很多按钮,面板一个内一个。
版本 1 布局完全在 UiBinder xml 中构建,而 版本 2 纯粹以编程方式。

我将两个版本都部署到 App Engine 并运行两个版本,同时在每次运行之前清除浏览器缓存。 版本 1 (UiBinder) 加载后 ~12 秒 , 而 版本 2 ~3 秒 ,所以它真的不鼓励我使用 UiBinder。你有不同的印象吗?

最佳答案

UiBinder,就像任何 GWT 生成器一样,生成 Java 代码。因此,首先,阅读生成的内容并将其与您手动编写的内容进行比较(将 -gen 选项传递给 GWT 编译器或 DevMode,使其将生成的代码写入磁盘)。

UiBinder 的亮点在于 HTMLPanel和 I18N,因为它使代码比用 Java 编写时更具可读性。

GWT 2.5 还引入了 IsRenderableRenderablePanel作为一项实验性功能,但可以在某些条件下提高您的性能(他们为提高 Orkut 的性能而设计)。同样,UiBinder 使其易于使用(IsRenderable 否则需要以适当的顺序调用其方法,并在适当的时间获得最佳性能;UiBinder 使这变得透明)。不幸的是没有其他 IsRenderable小部件比 RenderablePanel ,所以它只有在您创建自己的实现 IsRenderable 的小部件时才有帮助。 ;和 IsRenderable在非常低的水平上运行。

一般来说,UiBinder 的执行速度不应该比手写代码慢(当然,对于小部件的等效排列)。当人们说 UiBinder 表现更好(在 IsRenderable 之外)是它鼓励你使用 HTMLPanel而不是用于布局的面板。例如,一个 HTMLPanel包含 HTML <table>或一套<div> s 的执行速度比 FlexTable 快得多或者一堆FlowPanel s(假设您不需要动态修改布局)。

关于gwt - GWT 的 UiBinder 真的能提升应用性能吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12931153/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com