MVC3 基本业务开发框架 0.6.20110605版本(性能优化实践)

郑重声明,如果引用,请注明出处:(原创 博客园:天之子

一、性能优化技术手段

01)主界面菜单设置为输出缓存10分钟,每个用户10分钟之内不用多次请求数据库。

02)网格数据采用AJAX分页,支持带查询条件翻页。大文本的网格数据自动使用...显示部分内容。

03)大数据量的无限多级树形结构,采用动态延迟加载机制,提高及时响应能力。

04)采用AJAX请求编辑信息,无刷新加载弹出窗口,数据量极小。

05)支持混合输出 HTML+JSON,客户端解析AJAX输出结果。

06)主界面、列表、树形、编辑、权限的脚本设置为分部视图,自动加载调试、发布状态的 CSS、JS 文件。

07)工具栏提取为公用模块,设置为分部视图,根据权限动态加载。

08)CSS Spirits 合并小图为一张大图,工具栏按钮、编辑窗口按钮图标都是使用一张图片。

09)合并 jQuery + jQuery UI 类库。

10)合并 JSON类库+数组扩展+日期扩展+JSON扩展+字符串生成器+$ajax+对话框+控件 类库。(2011-06-05 进一步优化)

11)压缩 jQuery UI、布局、菜单、日期时间、树形 相关的 CSS 文件。

12)禁用不用的视图引擎,只保留 Razor 引擎。

13)启用压缩属性,支持HTML+JS的数据流压缩、清理文本多余内容,输出干净的HTML+JS。

14)开发版本的 CSS、JS、图片等资源设置为不生成内容,发布时不包含开发版本文件。(2011-06-05 进一步优化)

15)最大限度应用DIV+CSS+JS事件绑定技术显示HTML内容,尽可能避免产生大量的HTML脚本,增加输出大小而导致带宽压力。

二、开发框架优化结果

1)开发调试版本(jQuery-1.6.1.js+jQuery-ui-1.9m5.js )

      初次加载    主 界 面 ---- 760232 字节  = 742.4 KB, 14个请求

                     行政区划 ---- 361592 字节  = 353.1 KB, 31个请求

      二次运行    主 界 面 ----   14060 字节  =   13.7 KB, 13个请求

                     行政区划 ----   28987 字节  =   28.3 KB, 31个请求

2)发布优化版本(合并CSS+JS+CSS Spirits+浏览器存储的优化版本)

      初次加载    主 界 面 ---- 265850 字节  = 259.6 KB, 13个请求

                     行政区划 ---- 102378 字节  = 100.0 KB, 24个请求,7个从缓存加载

                     日志分析 ----   42627 字节  =   41.6 KB, 12个请求,8个从缓存加载

      二次运行    主 界 面 ----   11987 字节  =   11.7 KB,  8 个请求,7个从缓存加载

                     行政区划 ----   24088 字节  =   23.5 KB, 16个请求,13个从缓存加载

                     日志分析 ----   25196 字节  =   24.6 KB, 11个请求,10个从缓存加载

优化评估:

1)如果使用自定义jQuery-ui-custom.js压缩版,效果比现在还要好很多,初次加载应该可以控制在200KB以内。

     上面之所以没有自定义压缩版的测试数据,是因为 jQuery UI 1.9.5 还没有正式发布。

2)MVC3 属于单页面结构,初次加载尽可能多加载公用CSS、JS文件,独立性很强的文件在功能点加载。

3)无论调试,还是发布版本,二次运行加载文件大小、耗用时间基本没有差别。MVC3 的高性能确实罕见。

4)以上数据已经使用 CSS Spirits 合并过工具栏图标,否则请求数还要更多。

5)一个应用系统初次运行主界面23个菜单项,260KB,2秒显示,加载列表数据 100KB 速度飞快,弹出窗口瞬间响应,二次运行瞬间加载。可以讲性能优化是成功的。

6)发布版本:186个文件,33个文件夹,11.1MB,数据库3.58MB。其中使用三个组件6个文件(从网上可以下载到),9.72MB,也就是说:核心框架生成文件只有1.38MB+3.58MB数据库。

参考主界面:

弹出编辑窗口:

带下拉工具栏+查询条件+日期时间+查询翻页:


posted @ 2011-06-05 13:27  天之子  阅读(3161)  评论(18编辑  收藏  举报