`

[开发笔记]原来还可以更快.

阅读更多
好久没有更新消息了.

但是最近一有时间我就在继续开发, 只是现在不敢再轻易的说一些承诺了.

不过通过代码重新, 稳定性 , 兼容性 和 效率 确实大大的提高了.
只是功能还不完善.


今天采用了全新的方法来计算 性能, 结果很让我吃惊
这个全新的方法就是: 手动用秒表计时.
打开网页的时候开始计时, 当我看到列表以及列表内的数据完全的展现出来之后停止计时.

这个是最实在的了, 任何希望在浏览器内部通过工具 或者是js脚本来计时的方法几乎都是不准确的. 因为这类方法一般都计算的是"页面加载完毕并且所有脚本执行完毕"的耗时.
但是"页面加载完毕并且所有脚本执行完毕"并不等于"渲染完毕 所有数据可见".
所以,做这个测试的时候还是用"眼见为实"的好.



只测了IE 7下, 机器是 酷睿2 2.0G  内存2G  OS是vista home basic
(数据采用本地数据,所以忽略了网络传输的影响)

GT :
7列数据  其中有4列是复杂数据 ( 可以理解为列上有 render )
5000条, 用时是 8秒!!!! 
500条  1.5秒左右



ext 2.01   (用的是 array-grid例子)
5列数据 其中有2列复杂数据 (与上面GT的测试数据有5列是一样的,2列的render是一样的)
5000条 用时90秒
500条  2.5秒左右

用此新的计时方法对1个月前的GTGrid做测试,结果是5000条数据 15秒左右

明天上班(其实是今天了) 在 1G内存 IE6 和 ff2下再测试一次


以前我也说过 做这种对比其实没什么意义,
因为绝大多数情况下 用户的列表 数据是在几百条左右的. 对于几百条数据 两者是没什么差别的(1秒左右的差别没有人会在意)
一味的强调在极端情况下 GT的速度比EXT快多少 是很无聊的.

所以我很早之前就不再把 "极端情况下的性能优化" 作为工作重点.
这次速度的提升完全是我在做代码重构时的"副作用".

对dom的操作顺序 css的定制 还有clientXXXX offsetXXXX的使用,这些都对性能的影响很大很大,有时候比算法影响更大.
例如这个列表,就是对数据的循环迭代,根本无所谓算法,能做的优化基本都做了
在for语句上做文章,能提到循环外的尽量提出去,减少循环体内时间复杂度等等,但是这些工作对于如此简单的for循环 确实效果不明显. (以上文字不是说教,我只是自己感慨一下 呵呵)



对GT不要有任何期待,因为开发时间不可控.但是一旦它正式推出 必然是会带给您惊喜的.

现在开发的脚步很缓很缓 但是每一步走的都很稳健 , 希望以后可以走快点.
但是我知道 我不可能每天都凌晨 4点多才入睡...

困了 不说了 晚安地球人



提醒自己:
明天咨询一下 在同类元素很多的情况下,
"一次性改变元素的class对应的styleSheet"和
"改变每一个元素style" 哪个更好
6
3
分享到:
评论
7 楼 huhupure 2008-03-03  
fins 要加油啊,以后最好能抽时间搞个培训,这样你也能赚些钱
6 楼 Emy 2008-02-27  
5 楼 hgq0011 2008-02-23  
fins真棒!加油!
有最新的版本下载吗?
谢谢!
4 楼 fins 2008-02-22  
群满了

而且说实话 我从来没去那个群里做过什么 很对不起大家啊

因为说老实话 我对ecside不是很喜欢
我现在只希望更多的经历投入到 gtgrid上来

而且打算等 je的wiki开了 在wiki上写 gt的文档 在论坛里讨论
群存在的意义不大
3 楼 shenlei 2008-02-22  
请问GT-Grid (EC Side)的群号是多少呢?
2 楼 erzimi 2008-02-22  
耶?我的评论怎么没了?
1 楼 arrowhead 2008-02-22  
fins辛苦了
我们的项目组已经用GT做过一个成功的项目了,开始也遇到了一些问题,看你提供的文档和自己的理解,问题都解决了。
从来没有在这里留过言。
今天早上见到了你的这条留言,看你是凌晨四点留言的,确实太辛苦了。
谢谢了!

相关推荐

    Eclipse插件开发学习笔记全篇+源码.rar

    本文将深入探讨Eclipse插件开发的相关知识点,结合提供的"全书分为4篇共24章"的学习笔记和源码,帮助你更全面地理解和实践Eclipse插件开发。 第一篇:基础篇 在这一篇中,你将学习到Eclipse插件开发的基础知识,...

    AUTOCAD二次开发笔记(ObjectARX)-全部.docx

    AUTOCADE二次开发笔记(ObjectARX)---全部 本文档记录了使用ObjectARX开发AUTOCAD二次开发的笔记,涵盖了从安装环境到创建ObjectARX项目、加载和运行项目的整个过程。 1. 安装环境:安装VS2005和AutoCAD2008,安装...

    MUI快速开发笔记文档

    除了通过`extras`参数传递数据外,还可以使用`evalJS`方法实现在不同WebView之间的方法调用。例如,父WebView调用子WebView的方法。 - **父WebView中的方法**: ```javascript mui.plusReady(function() { var ...

    C#学习笔记......

    笔记内容包括C#语法基础、面向对象编程概念、异常处理、集合与泛型、LINQ查询、多线程编程、Asynchronous编程模型(async/await)、.NET框架、Windows Forms和WPF应用开发,以及最新的C#版本特性如nullable ...

    android 开发笔记

    "Android开发笔记"是由real6410公司为开发者提供的一份宝贵的资源,特别针对real6410开发板进行优化,旨在帮助开发者快速提升Android应用开发技能。这份资料包含了从基础知识到实战经验的全方位指导。 首先,"read ...

    C++学习笔记......

    完成小项目,如文本处理、图形用户界面、游戏开发或网络编程,可以帮助你更好地理解C++并提高编程技能。 本学习笔记的200863210320.chm文件可能包含详细章节、实例代码和习题解答,旨在帮助读者逐步深入C++的世界,...

    C++学习笔记共19页.pdf.zip

    【标题】"C++学习笔记共19页.pdf.zip" 提供的是一个关于C++编程语言的学习资料,其中包含了19页的详细笔记。这个压缩文件可能是为了方便学习者们下载和阅读,以便深入理解C++的核心概念和技术。 C++是一种强类型、...

    蓝牙4.x BLE开发笔记-基于nRF51822.pdf

    总之,通过这篇开发笔记,读者将不仅了解nRF51822芯片的功能和硬件接口,还能掌握BLE开发的基本技巧,为实现各种创新的蓝牙低功耗应用奠定基础。在实际开发中,结合艾克姆科技提供的硬件平台和文档支持,可以更高效...

    Eclipse插件开发学习笔记.pdf

    为了更好地学习Eclipse插件开发,可以加入相关的Java学习群组,例如文档中提到的“Java学习群:***”,在其中可以与首席架构师以及其他学习者交流心得、共享资源,甚至能够免费接受首席架构师的讲课,这些都是非常...

    最新最全的Android开发笔记

    在Android开发领域,掌握最新的技术和最佳实践至关重要。这份"最新最全的Android开发笔记"涵盖了Android应用开发的各个方面,旨在帮助...通过学习和实践,你可以构建出更高效、更稳定、用户体验更佳的Android应用程序。

    软件工程笔记(完整版).pdf

    软件工程的目标是提高项目的成功率,确保软件更好、更快、更经济地开发出来,并且能够持续维护和更新。 软件的经典定义包括程序、相关数据和文档的完整集合。软件工程不仅关注程序的编写,还包括文档的制作和数据的...

    android开发笔记2

    总的来说,“android开发笔记2”是针对real6410开发板的Android开发者的一份宝贵资源,它不仅覆盖了基本的环境搭建和调试技术,还可能深入到硬件特性和系统内部机制,帮助开发者在实际项目中实现高效、有针对性的...

    android开发笔记1

    4. Android 2.1版本:Android 2.1(Eclair)是Android历史上的一个重要版本,它引入了多项改进,如更快的性能、动态壁纸和增强的电源管理。在移植过程中,需要理解该版本的系统架构和API,以便进行有效的定制和优化...

    lucene笔记共38页.pdf.zip

    以上内容仅是对《Lucene笔记共38页.pdf》压缩包中部分内容的概述,实际笔记中应包含更多详细信息,如具体代码示例、最佳实践以及常见问题解答等。通过深入学习这份笔记,读者将能够熟练掌握Lucene的使用,从而在实际...

    行业分类-设备装置-笔记记录应用特征的漫游.zip

    总的来说,这个压缩包文件中的笔记记录应用特征分析,可能涵盖了如何针对不同行业和设备优化应用设计,以及各种关键功能的实现,对于理解并开发或选择合适的笔记应用具有很高的参考价值。如果你需要深入学习或研究这...

    黑马MySQL数据库笔记.doc

    MySQL数据库笔记是黑马程序员编写的数据库笔记,涵盖了数据库语句的介绍、数据库操作等优秀的操作,旨在帮助读者更好地理解数据库基础。下面是笔记的详细介绍: 数据库介绍 在了解 MySQL 之前,首先需要了解什么是...

    android开发笔记4

    在实际学习过程中,阅读此文档可以帮助你更好地理解整个开发笔记的结构和目标,以及在Real6410开发板上实践的具体步骤和建议。 总的来说,这份"Android开发笔记4"资料集提供了从基础UI编程到特定硬件平台(Real6410...

Global site tag (gtag.js) - Google Analytics