我现在的工作是企业级系统开发,现在参与的系统难点是单事务处理的数据量大(几十万,上百万,这并非数据库表中的数据量,是一次用户的请求就会有这样的数据量存取数据库,做业务处理),同时处理的业务也异常复杂.同时,在现有公司整体架构的范围内(很难类似互联网开发规模的集群处理,多几台服务器似乎也不容易),所做的的一些性能调试的总结:
1.Data partition.这点效果是最明显的,我们现有的数据源有oracle,solr,都有这方面的尝试,切割数据后查询或更新数据的效率提升明显.
2.Server seperate.因为有很多计算逻辑放在应用服务器,所以服务器压力也很大,现有的是按功能进行分离,不同的服务器组负责不同的业务逻辑处理,后面通过EMS来异步通信.
3.Json+ajax替代JSF.因为前端页面的动态效果越来越丰富,要展现的信息也逐渐丰富,前端页面的响应变得迟钝了很多,所以现在逐步用ajax代替JSF,局部刷新页面.当然,还前端还采用的压缩js等的手段来减少响应的时间.
4.solr的采用,全文检索是对我们业务处理非常有帮助的,很多一对多的信息在关系型数据库中,要通过子表去实现,导致冗余的数据增加,查询也慢,而这正是全文检索擅长的,所以从结果来看,也是效果明显.当然,核心数据现在仍然以oracle保存为主.
5.excel的大数据量处理.之前不管是用POI,还是jExcel,几百上千条数据处理还可以,如果上传下载的excel里的数据量到达好几千,上万的话,内存很容易就爆了.原因很简单,通常的处理方式是user model的方式,excel一次读进内存,形成一个POI定义的结构,狂耗内存,研究后可以借助event model及excel 2007的新的基础结构可以一部分一部分的读或者写,不用一次性全部load进内存.具体的可见:http://googi.iteye.com/admin/blogs/1534274
6.前端EMS接受请求,然后异步处理.因为部分功能的业务处理相当复杂,涉及的数据量大,服务器在处理时所占用的内存要好几百M,为避免并发请求导致服务器爆内存,在前端的用户请求我们会首先将其放进queue里,然后服务器再一条一条的取处理依次处理.
分享到:
相关推荐
为了满足高性能运动控制系统的开发需要,结合工程上的实际应用,本书介绍了数字信号处理器的发展概况和美国德州仪器(TI)等公司生产的DSP芯片的特点,以及运动控制系统的发展概况,并对现有的系统实现方法作了对比...
1 绪论 1.1课题背景 随着我国国民经济建设的蓬勃发展和具有中国特色的社会主义市场经济体制的迅速完 善,各个行业都在积极使用现代化的手段,不断改善服务质量,提高工作效率,这些都 在很大程度上给企业提出越来越...
1.3、课程设计的内容: 1.3.1、题目 学生成绩管理系统 1.3.2、要求 现有学生成绩信息文件1(1.txt),内容如下 姓名 学号 语文 数学 英语 张明明 01 67 78 82 李成友 02 78 91 88 张辉灿 03 68 82 56 王露 04 56 45...
assertion(断言)在软件开发中是一种常用的调试方式,很多开发语言中都支持这种机制。在实现中,assertion就是在程序中的一条语句,它对一个boolean表达式进行检查,一个正确程序必须保证这个boolean表达式的值为...
5.开题报告检查原则上在第2~4周完成,各系完成毕业设计开题检查后,应写一份开题情况总结报告。 本科毕业设计(论文)开题报告 学生姓名 朱培诚 学 号 240061443 专 业 自动化(车辆电子电气) 指导教师 顾...
在完成对软件的验收之后,软件系统可以交付用户使用,并需要以“项目开发总结报告”的书面形式对项目进行总结。 软件运行与维护期 软件系统的运行是一个比较长久的过程,跟软件开发机构有关的主要任务是对系统进行...
-测试总结和报告。 一个好的测试管理工具应该能把以上几个阶段都管理起来。 测试人员每时每刻都在度量别人的工作成果,而测试人员的工作成果又由谁来度量呢?度量的标准和依据是什么呢?软件测试的度量是测试...
DBGridEh组件无论在外观上还是功能上都非常类似Borland开发工具中现有的dbgrid组件,它除了提供dbgrid组件的全部功能外,还增加了下列新功能: ● 任意选择多行、列或矩形区域的数据. ● 为多列标题设定共同的父...
最初是Windows NT版本的可选包,随后内置在Windows 2000、Windows XP Professional和Windows Server 2003一起发行,但在普遍使用的Windows XP Home版本上并没有IIS。 添加和运行准备 一、IIS的添加 请进入“控制...
鉴于市场上用户的手机型号、种类、屏幕分辨率等参差不齐,传统方式根据主流系统分别开发相应的系统耗时又耗力,为了高效开发并节约开发项目成本,本文采用Android+HTML5相结合的方式进行移动端Web系统的设计研发工作...
12.1 使用文件系统 12.1.1 Directory类和File类 12.1.2 DirectoryInfo类和FileInfo类 12.1.3 DriveInfo类 12.1.4 使用Attributes 12.1.5 使用通配符过滤文件 12.1.6 获取文件的版本信息 12.1.7 Path...
此外,在Xerox PARC工作,那里有许多语言和系统上的专家,我不得不强迫自己去理解Tcl/Tk的长处和弱点。我的许多同事都在他们的项目中采用了Tcl和Tk,但是他们也很快指出了它的缺点。因此,我就总结了一套编程技巧以...
18.2 在 C #代码中调用 C++和 VB 编写的组件 .240 18.3 版 本 控 制 .249 18.4 代 码 优 化 .252 18.5 小 结 .254 第五部分 附 录 .255 附录 A 关 键 字.255 附录 B 错 误 码.256 附录 C .Net 名字空间...
12.1 使用文件系统 400 12.1.1 Directory类和File类 400 12.1.2 DirectoryInfo类和FileInfo类 402 12.1.3 DriveInfo类 404 12.1.4 使用Attributes 405 12.1.5 使用通配符过滤文件 407 12.1.6 获取文件...
14.10 包装现有的程序包 14.11 [incr tcl]对象系统 14.12 注释 第15章 事件驱动编程 15.1 tcl事件循环 15.2 after命令 15.3 fileevent命令 15.4 vwait命令 15.5 fconfigure命令 第16章 stcket编程 ...
2.项目更新进度:每两天在《来实战》栏目上更新设计进度内容,在工程没有实质性进度的时候也可以在论坛发帖分享进行实施困难点、设计技术难点和原理讲解及器件分析等。 3.建立对应项目讨论群。利用现有已建立的技术Q...
10.1 在RCP上构建应用程序的 理由...... 235 10.1.1 给企业带来的好处..... 235 10.1.2 给软件开发者带来的 好处..... 236 10.1.3 给用户带来的好处..... 236 10.2 复习Eclipse体系结构...... 237 10.2.1 Eclipse...