`
ahaoo0712
  • 浏览: 17552 次
  • 性别: Icon_minigender_1
  • 来自: 襄樊
社区版块
存档分类
最新评论

GWT: Grid vs FlexTable

阅读更多

I’ve been having some problems in GWT with a table pulling 100+ rows at a reasonable speed using the FlexTable, but before making massive changes by switching to a Grid I ran some tests comparing the two.  I originally found this issue when testing on IE for the first time after having no problems with FF

Here’s the basic code used:

long startTime = System.currentTimeMillis();
for (int i = 0; i < names.length; i++) {
    NameData nd = names[i];
    grid.setText(i, 0, nd.getName());
    grid.setText(i, 1, Double.toString(nd.getD1()));
    grid.setText(i, 2, Double.toString(nd.getD2()));
    grid.setText(i, 3, Integer.toString(nd.getRank()));
}
gridLabel.setText("Grid: "+(System.currentTimeMillis()-startTime)+"ms");
 
startTime = System.currentTimeMillis();
for (int i = 0; i < names.length; i++) {
    NameData nd = names[i];
    flex.setText(i, 0, nd.getName());
    flex.setText(i, 1, Double.toString(nd.getD1()));
    flex.setText(i, 2, Double.toString(nd.getD2()));
    flex.setText(i, 3, Integer.toString(nd.getRank()));
}
flexLabel.setText("FlexTable: "+(System.currentTimeMillis()-startTime)+"ms");

I’m pulling from an array of 100 which holds some data that’s used to populate the cells.  The creation of the tables is done before hand, I’m not sure if this gives an unfair advantage to the Grid, but that’s the way I’m doing it.

Try the test app yourself here .

Results
What I’m finding is that the Grid does beat the FlexTable, but not by much with a small data set.  Larger sets seem to widen the gap.  My guess for this is that since FlexTable has the ability to add rows (Grid is sized from the start) that it works much like how other resizable constructs work such as Java’s ArrayList. My reasoning for this is that the first time the test is run the speed is very slow on the FlexTable (especially in IE).  Repeated test runs after the initial are faster and I think this is because the table was being sized the first time as rows were added, and didn’t need to be resized during the following tests.
MS Windows Machine
Linux Machine

The other thing I’m finding is that performace varies based on browser.  I’m seeing FF run reasonably well.  With IE the Grid runs about the same as FF but the FlexTable runs considerably slower.  I also tested Opera and was stunned as it blew both others out of the water. 

Here’s some of the tests run with two different machines (one linux and one Windows):

 

  FF FF IE IE
  Grid FlexTable Grid FlexTable
Run 1 147ms 198ms 156ms 1297ms
Run 2 131ms 158ms 156ms 203ms
Run 3 150ms 176ms 156ms 172ms

 

  FF FF Opera Opera
  Grid FlexTable Grid FlexTable
Run 1 89ms 244ms 37ms 118ms
Run 2 85ms 115ms 31ms 41ms
Run 3 86ms 115ms 28ms 41ms


reprint: http://whatwouldnickdo.com/wordpress/401/performance-grid-vs-flextable/

 

分享到:
评论

相关推荐

    Accelerated GWT: Building Enterprise Google Web Toolkit Applications

    《加速GWT:构建企业级Google Web Toolkit应用》是一本深度探讨如何利用Google Web Toolkit(GWT)构建高性能Ajax应用程序的专业书籍。本书作者Vipul Gupta深入解析了GWT的核心功能,以及如何通过GWT生成优化的...

    smartgwt 分页grid

    本文将深入探讨如何使用SmartGWT来创建一个自定义的分页Grid组件,以及相关的知识点。 首先,我们需要了解Grid组件在SmartGWT中的作用。Grid是SmartGWT中的核心组件之一,用于展示二维数据,它支持多种功能,如排序...

    grails-gwt:新的 Grails GWT 插件

    Grails GWT插件介绍Google Web Toolkit (GWT) 是一种高级 AJAX 框架,允许您使用 Java 开发丰富的用户界面,从而利用类型... plugins { build ":extended-dependency-manager:0.5.5" compile ":gwt:1.0.3", { transit

    gwt:GWT开源项目

    GWT GWT是GWT 2.5及更高版本的官方开源项目。 在本文档中,您将获得一些快速说明,以根据源代码构建SDK并运行其测试。 有关更详细的文档,请访问我们的。 如果您有兴趣为该项目做贡献,请阅读部分。构建GWT SDK: ...

    tipl-gwt:TIPL 的 GWT 接口

    - 编译完成后,输入`mvn gwt:run`来启动GWT开发服务器。这将在默认浏览器中打开一个新窗口,显示TIPL-GWT的Web界面。 - 通过浏览器中的界面,你可以与TIPL库进行交互,执行图像处理任务。 4. **GWT的开发和调试**...

    rxpong-gwt:使用GWT和RxJava的Pong游戏

    《RxPong GWT:利用GWT与RxJava构建的Pong游戏》 RxPong GWT是一款基于Google Web Toolkit (GWT) 和 ReactiveX 库(RxJava)开发的Pong游戏。这款游戏展示了如何在GWT环境中实现反应式编程风格,为开发者提供了一个...

    gss.gwt:GWT 的 Google Closure 样式表支持

    【标题】:“gss.gwt:GWT 中的 Google Closure 样式表支持” 【正文】: Google Web Toolkit(GWT)是一种开源的Java框架,它允许开发者使用Java语言编写前端Web应用,然后编译成高效的JavaScript代码。在GWT中引入...

    common-widgets-gwt:gwt 小部件库

    **GWT小部件库——构建高效且用户友好的Web应用** 通用部件-GWT是一个基于Google Web Toolkit (GWT) 的小部件库,旨在为开发者提供一系列预构建的、可复用的UI组件,以简化Java开发人员在创建交互式Web应用程序时的...

    spring-boot-gwt:结合GWT的Spring Boot演示项目

    Spring Boot GWT 这是一个演示项目,用于展示Spring Boot与GWT的结合。 它使用最新的依赖关系(Spring Boot 2.0.1和GWT 2.8.2)和Java8。可以在找到已部署的应用程序。跑要运行该项目,您必须分别启动Spring Boot和...

    cesium-gwt:一些Cesium JS库周围的GWT包装器

    请注意,此库现在在Harmonia ... JsFunction API是Cesium-GWT的一部分,但已分解为一个单独的库,可用于多种用途(包括在OZONE Widget Framework的OWF-GWT API中使用)。 可以在找到项目页面,包括“ To Dos”。 您可

    GWT工具GWT工具GWT工具GWT工具GWT工具GWT工具

    fwefwefwGWT工具GWT工具GWT工具GWT工具GWT工具GWT工具

    log4j-gwt:log4j-gwt使GWT客户端可以使用log4j-开源

    "Log4j-GWT" 是一个专为Google Web Toolkit (GWT) 设计的日志框架,它让GWT应用能够利用Apache Log4j的强大功能。Log4j是一个广泛使用的Java日志库,以其灵活性和可配置性而闻名。通过Log4j-GWT,开发人员可以在GWT...

    Ext GWT 2.0: Beginner's Guide

    《Ext GWT 2.0: Beginner's Guide》是一本专为初学者设计的指南,旨在帮助读者快速掌握Ext GWT 2.0这一强大的Web应用程序开发框架。这本书结合了理论与实践,提供了丰富的示例代码和源码,使得学习过程更加直观和...

    NPESDK_GWT:NPESDK GWT 实用程序库

    NPESDK_GWT NPESDK GWT 实用程序库 在线演示页面在这里! 执照 在 MIT 许可下发布。 入门 下载 npesdk-gwt-1.0.jar 并编辑 yourproject.gwt.xml。 &lt; inherits name = ' net.npe.gwt '&gt; 画布创作者 CanvasCreator ...

    ui5gwt:适用于SAP UI5的Java API

    【UI5gwt:连接UI5与Java】 "ui5gwt"项目正是为了弥合UI5与GWT之间的鸿沟,提供一个桥梁,使得开发者可以使用Java API来操作UI5的组件和数据。这个项目的目标是使Java开发者能够更轻松地进入UI5开发领域,同时利用...

    GWT简介.docx

    **GWT(Google Web Toolkit)简介** GWT,全称为Google Web Toolkit,是Google推出的一款开源的Java开发框架,主要用于构建高性能、跨浏览器的富互联网应用程序(Rich Internet Applications,简称RIA)。GWT允许...

    client-api-gwt:捆绑有用的工具,用于使用GWT构建混合JavaJavaScript应用程序

    【标题】"client-api-gwt:捆绑有用的工具,用于使用GWT构建混合JavaJavaScript应用程序" 在GWT(Google Web Toolkit)开发中,`client-api-gwt`是一个重要的资源,它提供了一系列工具,帮助开发者更有效地构建Java...

    入门学习GWT

    ### 入门学习GWT:理解Google Web Toolkit的精髓 #### Ajax与GWT:一场革命性的结合 在探讨Google Web Toolkit(GWT)之前,我们首先需要了解Ajax的基础概念及其重要性。Ajax(Asynchronous JavaScript and XML)...

    cometd4gwt:由 GWT 完成现有的 CometD 项目

    彗星d4gwt 由 GWT 完成现有的 CometD 项目Cometd4Gwt? 使用 GWT 的 JSNI 来包装现有 CometD 项目的 JavaScript? 客户端并利用 GWT 现有的序列化框架将对象(实现 IsSerializable?)从服务器传输到客户端。 源代码...

Global site tag (gtag.js) - Google Analytics