`
ahaoo0712
  • 浏览: 17730 次
  • 性别: 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/

 

分享到:
评论

相关推荐

    gwt学习笔记

    2. **FlexTable and Grid**:表格控件,类似于HTML中的 `&lt;table&gt;`。可以使用 `setText()`, `setHTML()`, `setWidget()` 等方法添加单元格内容,并通过 `getCellFormatter()` 方法格式化单元格。 3. **Frame and ...

    云应用开发 ——Google App Engine & Google Web Toolkit入门指南

    - **Grid 和 FlexTable**:表格控件。 这些控件提供了丰富的用户界面设计可能性,使开发者能够轻松创建美观且功能强大的 Web 应用程序。 #### 第5章 装饰控件 在这一章中,将介绍如何美化 GWT 控件: ##### 5.1 ...

    1个人工智能相关资源的技术细节探讨和相关的学习笔记

    以下是一个人工智能相关资源在实践工作中的使用案例: ### 案例:京东方工业互联网中的AI应用 - **资源**:京东方利用人工智能技术结合工业互联网平台,实现了生产过程的智能化管理和优化。

    DeepSeek使用技巧大全-1000个DeepSeek神级提示词,让你轻松驾驭AI

    为什么你的AI助手总是答非所问? 「写篇产品分析」→ 收到一堆不知所云的文字 「做个竞品对比」→ 得到几页没有重点的废话 揭秘:不是AI不够聪明,而是你的指令太“高冷”! 一、新手进阶:5大法则,让AI瞬间Get你的点 法则:人话指令——行动+领域+输出格式 错误示范:“分析数据” → AI给你一堆看不懂的术语 正确打开方式:“用小白都能听懂的话,解析2023年销售数据,找出三大问题,给出改进建议,并做成图表” 秘诀:把AI当成你的助手,明确任务、受众和呈现方式,它就能精准回应!

    东南大学操作系统原理课程讲义-操作系统基本概念与历史演变及其应用实例解析

    内容概要:本文档为东南大学操作系统原理课程的详细讲义。主要内容涵盖了操作系统的发展历史、主要概念和结构、具体应用案例、计算机系统组织结构以及具体的处理器、内存、缓存、中断及输入输出模块的工作机制等基础知识。还介绍了如eCos、Linux等操作系统在高性能计算领域的实际应用场景,特别是针对嵌入式系统配置的需求,如eCos用于AMS-02项目。通过展示GUI和X Windows系统的例子解释了操作系统是如何协调各种任务并提高系统效率。同时,也探讨了内存管理、进程管理、死锁、I/O管理等方面的内容。最后给出了该课程的具体教学大纲和教学要求。 适用人群:对于正在学习或从事操作系统相关领域的高校学生或者研究学者而言,这份讲义能够帮助理解和掌握操作系统的运作原理和关键技术。 使用场景及目标:该讲义适用于课堂教学,帮助学员理解操作系统的构成要素及工作机制,了解各类操作系统的演化路径,并应用于实际项目的开发和技术优化过程中,从而培养学生对计算机软硬件协同工作的认知能力和工程素养。 其他说明:讲义还包括了几位操作系统领域先驱人物的简介(Ken Thompson & Dennis Ritchie、Stev

    DeepSeek爆火,25年AI行业如何发展?.pdf

    DeepSeek爆火,25年AI行业如何发展?.pdf

    基于STM32的'水位检测自动控制系统':集成超声波模块与DS18B20传感器的多功能应用.pdf

    基于STM32的'水位检测自动控制系统':集成超声波模块与DS18B20传感器的多功能应用.pdf

    鸿蒙(HarmonyOS)- 装饰器

    鸿蒙(HarmonyOS)- 装饰器

    加载mp4 xxxxxxxxxxxxxxxxxxx

    加载mp4 xxxxxxxxxxxxxxxxxxx

    基于SpringBoot的甘肃非物质文化网站(源码+数据库+万字文档)

    一、项目介绍 404.系统包含两种角色:用户、管理员,系统分为前台和后台两大模块,主要功能如下: 用户信息管理 用户信息管理页面为管理员提供了以下功能: - 查询管理用户信息 - 删除用户信息 - 修改用户信息 - 新增用户信息 - 对用户名称进行模糊查询 商品分类管理 商品分类管理页面为管理员提供了以下功能: - 查看已发布的商品分类数据 - 修改商品分类 - 作废商品分类(即删除商品分类) 申请信息管理 申请信息管理页面为管理员提供了以下功能: - 查看用户的申请信息 - 作废申请信息(即删除申请信息) 订单信息管理 订单信息管理页面为管理员提供了以下功能: - 查看用户的订单信息 - 作废订单信息(即删除订单信息)

    MATLAB实现基于TCN-Transformer+BiLSTM多变量时间序列预测的详细项目实例(含完整的程序,GUI设计和代码详解)

    内容概要:本文档详细介绍了基于MATLAB实现TCN-Transformer+BiLSTM多变量时间序列预测的方法及其项目实例。项目旨在提高时间序列预测精度、解决传统方法局限性,提升多变量数据处理能力和实时处理能力,增强智能决策系统发展。核心技术包括TCN(捕捉长时依赖性)、Transformer(捕捉全局依赖性)、BiLSTM(捕捉双向依赖性)。该模型经过多层次特征提取与优化、在线学习与实时预测,具有良好的应用前景。 适用人群:具备MATLAB编程基础和技术背景的研发人员,熟悉机器学习和时间序列预测的科学家与工程师。 使用场景及目标:适用于金融市场预测、交通流量预测、能源需求预测、供应链管理、医疗健康数据分析、气象预测和工业生产预测等多领域。主要目标包括提高预测精度、提升实时处理能力、增强多变量数据处理能力和模型的自适应学习。 其他说明:文中提供了详细的项目背景介绍、模型架构、实施细节和部署方案,强调了模型的优化策略(如自动化超参数调优和GPU/TPU加速推理)及应用领域的拓展可能性(如引入多模态数据融合和强化学习技术)。此外,项目还包括精美的图形用户界面(GUI)设计与可视化工具,支持用户自定义配置模型参数,并实现便捷的数据文件选择和结果导出功能。

    基于SpringBoot的高校宣讲会管理系统(源码+数据库+万字文档)

    415高校宣讲会管理系统,系统包含三种角色:管理员、企业、学生,系统分为前台和后台两大模块,主要功能如下。 前台功能模块: - 首页:展示系统的概览信息、推荐宣讲会等内容。 - 论坛:用户可以在论坛中进行交流、分享经验等。 - 企业:展示注册的企业信息,供用户浏览。 - 公告信息:查看系统发布的公告信息。 - 宣讲会:浏览宣讲会的详细信息,包括时间、地点等。 - 个人中心:用户管理个人信息,包括查看报名宣讲会、修改个人信息等操作。 后台管理模块(企业): - 个人中心:管理企业的个人信息,包括修改密码等操作。 - 宣讲会管理:发布和管理企业的宣讲会信息,包括添加宣讲会、编辑宣讲会、取消宣讲会等操作。 - 宣讲会报名管理:管理学生对宣讲会的报名情况,包括查看报名学生列表、确认报名等操作。 - 论坛管理:管理企业在论坛的发帖情况,包括查看帖子列表、回复帖子等操作。 - 公告信息管理:发布和管理企业的公告信息。 后台管理模块(管理员): - 个人中心:管理管理员的个人信息,包括修改密码等操作。 - 管理员管理:管理系统的管理员账号,包括添加管理员、编辑管理员、删除管理员等操作。

    numpy-2.2.0-cp311-cp311-musllinux_1_2_x86_64.whl

    该资源为numpy-2.2.0-cp311-cp311-musllinux_1_2_x86_64.whl,欢迎下载使用哦!

    QNX Neutrino 实时操作系统(RTOS)的技术特性及其应用领域解析

    内容概要:本文详细介绍了QNX Neutrino实时操作系统(RTOS),这是一种基于微内核架构设计的高度可靠性和实时性能的系统。QNX的微内核架构将应用程序、网络和文件系统隔离开来运行,使得当一个组件发生故障时不会影响整个系统的稳定,支持立即重启并限制对外围组件的影响最小化。为了提升实时可用性和高可用性,它实现了自我监测机制、自适应分区等功能,确保重要任务按时执行。此外,操作系统提供了全面的信息安全特性、强大的多处理能力、多种网络通信接口、图形化用户界面技术支持以及详细的文档和技术支撑。它适用于汽车、医疗器械、工业自动化、运输和重型机械等多个行业领域的关键任务环境。 适用人群:主要针对有较高安全性和实时性的需求的行业从业者,尤其是汽车制造和工业控制领域的产品经理和技术开发者。 使用场景及目标:帮助用户理解如何利用QNX Neutrino构建高效稳定的关键嵌入式系统,包括了解其技术架构、安全防护方法,优化系统性能等; 其他说明:文章还包括关于BlackBerry QNX提供的服务介绍,如功能安全性认证和支持迁移至新系统的帮助。

    DeepSeek内部研讨系列:DeepSeek与AIGC应用.pdf

    DeepSeek内部研讨系列:DeepSeek与AIGC应用.pdf

    urdfdom-headers-devel-1.0.5-1.el8.x64-86.rpm.tar.gz

    1、文件说明: Centos8操作系统urdfdom-headers-devel-1.0.5-1.el8.rpm以及相关依赖,全打包为一个tar.gz压缩包 2、安装指令: #Step1、解压 tar -zxvf urdfdom-headers-devel-1.0.5-1.el8.tar.gz #Step2、进入解压后的目录,执行安装 sudo rpm -ivh *.rpm

    numpy-2.2.0-cp313-cp313-macosx_14_0_arm64.whl

    该资源为numpy-2.2.0-cp313-cp313-macosx_14_0_arm64.whl,欢迎下载使用哦!

    Matlab基于WOA-SVR鲸鱼算法(WOA)优化支持向量回归的数据多输入单输出回归预测的详细项目实例(含完整的程序,GUI设计和代码详解)

    内容概要:该文档详细介绍了基于Matlab的鲸鱼优化算法(WOA)与支持向量回归(SVR)结合的方法及其项目实现。WOA通过仿鲸鱼的捕食行为,优化SVR模型的参数选择,有效克服传统SVR存在的不足,特别擅长处理高维和非线性回归问题。项目的目标包括优化SVR的预测精度、提升计算效率、增强模型的鲁棒性、为各类应用提供优质回归工具、促进智能化优化算法的应用,并推广WOA。项目应对的主要挑战涵盖高维数据处理、参数优化、计算资源利用、噪音剔除等,皆由WOA的特性予以克服。该研究为诸如金融、气象等领域提供了新的预测视角,强调数据预处理、算法融合的重要性,并详细探讨了模型的具体实施、结果可视化、以及系统的部署运维等层面。 适用人群:适合从事机器学习、金融分析、工程技术等领域的研究人员及从业者,特别是希望借助先进算法优化数据分析过程的人士。 使用场景及目标:可用于多输入单输出回归预测任务,旨在显著改善预测准确性和稳定性,具体应用场景区别于但不限于金融市场的趋势估计、气候条件预测、工程监测与维护、能源消耗预估和环保措施的效果预测等。 其他说明:文中还包含了完整的代码示例和详细的注释指导,辅助开发者更深入地理解和应用WOA-SVR优化算法,从而在实际问题解决中取得成效。

    uw-imap-utils-2007f-24.el8.x64-86.rpm.tar.gz

    1、文件说明: Centos8操作系统uw-imap-utils-2007f-24.el8.rpm以及相关依赖,全打包为一个tar.gz压缩包 2、安装指令: #Step1、解压 tar -zxvf uw-imap-utils-2007f-24.el8.tar.gz #Step2、进入解压后的目录,执行安装 sudo rpm -ivh *.rpm

    北京大学 - DeepSeek内部研讨系列:DeepSeek原理和落地应用.pdf

    北京大学 - DeepSeek内部研讨系列:DeepSeek原理和落地应用.pdf

Global site tag (gtag.js) - Google Analytics