系统在设计开发及实施过程中一直不间断的在进行各种优化,这些优化包括:
l UI及人机交互优化
2 系统性能的优化
系统通过方案的优化可系统达到如下标准:
l 系统能够连续地稳定运行,不能出现故障性退出、死机、长时间停滞等现象。
l 响应时间:数据录入操作时无明显等待时间;特殊情况下(例如读取大量仪器数据),应用/数据服务器端、B/S客户端响应时间不能超过30秒,且B/S客户端在等待状态时应有相应系统提示和操作选择;一般情况下,日常查询、统计和分析的响应时间不能超过5秒。
l 资源使用率:针对市场上主流的服务器,服务器CPU占用率峰值不超过80%,一般情况下不超过30%;内存使用率峰值不超过80%,一般情况下不超过30%;磁盘I/O(I/O读取、I/O写入)不能过高。
l 并发用户数:同时登入系统的并发用户数不少于100个,且系统不能产生明显迟滞现象(如一般性操作等待时间超过5秒)。
1.1.1. UI及人机交互优化
系统界面设计按照统一的标准文档及样例,提供统一的GUI风格及标准的外观(例如:GUI界面设计、颜色、网页设计、措辞、消息、对话框、工具栏、热键、一对多页眉与页脚更新、浏览、保存、插入/更新/删除等);
用户可以根据不同业务要求定制自己的工作桌面;
提供一定智能程度的用户操作实时指引,有效帮助用户找到正确操作方法或求助渠道;
系统具备对所有或范围的工作站发布通告的功能;
系统严格审查输入数据的有效性,杜绝脏数据的产生;
支持动态智能模糊查询;
多项任务切换时,不必重新登录或重新输入关键字;
对于关键的数据信息进行醒目标注或提示;
系统操作尽可能支持快捷键功能,提高一线业务人员的工作效率;
系统界面大方、简约为,无刺激性色彩,减少眼部疲劳;
系统设计不仅仅是关注功能和性能,在易用性客户体验上也做了大量改善。
l 提供界面响应速度
通过页面及静态资源缓存、大文件压缩等技术对页面的响应速度进行优化和改善。
l 优化界面颜色搭配
优化界面颜色搭配,并对于客户关注业务采样醒目的颜色来起到提醒和警示作用,对不同的业务状态采样不同颜色进行显示。
l 加强系统内搜索功能
加强搜索,提高系统资源利用率,让用户易于发现,更大发挥系统作用。
1.1.2. 系统性能的优化
性能设计非常重要,对于服务器端实时交易系统 (工作流平台、消息管理平台) 系统性能的重要性不言而喻,对于客户端如何让用户获得良好的用户体验客户端的性能也至关重要。
系统在架构设计的初期就充分的考虑了性能问题。影响性能的主要因素在IO,包括数据库,网络通信,文件等。
1.1.2.1. 数据分类及优化
对系统中的数据按数据的大小、访问频次进行分类,对不同的数据制定相应的访问机制来提。
缓存及缓存层:
在数据层和应用层之间增加数据缓存层,提供全局数据服务(如:工作流平台的流程信息和实例信息,字典平台的字典信息)。可以大大减少数据库往返次数。与读取数据库和读取大文件(如XML文件)比,读取内存的速度无疑要快的多。所以对频繁访问且变化不大的数据进行缓存。而共享内存更容易控制实现数据并发访问。
数据压缩:
对于在网络上传输的大文件和数据采用了压缩机制,在应用服务器和浏览器的通讯的两端进行压缩和解压缩。
配合浏览器的压缩功能对如下文件进行压缩:
l 静态网页(HTML,HTM)
l 文本文件(TEXT,XML等)
l 脚本文件(JAVASCRIPT)
l 样式文件(CSS)
1.1.2.2. 存储结构优化
为提供系统访问速度,在设计上对数据库进行存储结构优化,为兼顾数据共享和数据访问性能按数据表的访问频次存储到的不同数据文件中,不同的数据文件存储在不同的物理磁盘上以此提高数据访问的I/O。
在数据库存储结构上对频繁访问的数据表和历史数据表分别存储在不同的数据文件中。
1.1.2.3. 代码级性能优化
在代码设计上进行优化,对复杂的算法进行优化。
l 大数据传输采用压缩技术;
l 采用分页,减少传输的数据量;
l 控件的数据加载和数据绑定尽量采用惰性加载,异步加载;
l 对绘图等复杂运算采用多线程处理。
1.1.2.4. 数据库性能优化
数据库的性能对系统性能的影响至关重要。我们设计和实施过程中将多方面的对数据库进行优化。
优化索引:
索引是关系数据库系统举足轻重的重要组成部分,对于提高检索数据速度有着至关重要的作用,索引的原理是根据索引值得到行指针,然后快速定位到数据库记录。
系统索引的设计充分考虑的不同的数据结构特点和数据是如何被访问的,根据数据的不同建立不同的索引类型。
优化SQL语句:
Sql语句大约要经过三个阶段,编译优化,执行,取值,而编译阶段大部分情况下都要花掉60%的时间,SqlServer和Oracle都有缓存区,存放近使用的Sql语句,避免对相同语句的重复编译。
l 动态SQL提供效率
在系统的数据访问层(DAL)对数据库的存储全部采用动态SQL避免了对SQL语句的多次编译,提供执行效率。
l 避免全表扫描
在数据库查询时避免引起全表扫描的语句。
数据表分割:
根据业务及实际运行情况(如数据量特别大时考虑水平分割)对数据表进行水平或垂直分割(视数据库支持情况决定)。
数据分区优化:
将组成同一个文件组的数据文件放在不同的硬盘上,做到硬盘之间I/O负载均衡。