
性能优化
文章平均质量分 80
iteye_123
这个作者很懒,什么都没留下…
展开
-
项目性能优化经验--ZY项目
最近负责给公司某个ZY项目进行性能优化的一些经验分析碰到问题:1. 压力测试到100并发,任何一个场景CPU暴高,接近100%查询jstack日志,发现大部分的线程block在tomcat 的 http11.connect 的poll方法上 或者是c3p0连接池的获取上同时发现该项目数据库连接池配置了2000+,仍然不够用,100并发 分析原因: 数据库连接有问题打开...原创 2014-11-10 22:00:02 · 146 阅读 · 0 评论 -
code review清单
整洁的代码清单项目分类使用可以表达实际意图(Intention-Revealing)的名称有意义的名称每一个概念只用一个词有意义的名称使用方案/问题领域名称有意义的名称类应该是比较小的!类函数应该是比较小的!函数只做一件事函数DRY(Don’t Repeat Yourself)原则,(拒绝重复)函数...原创 2015-01-16 09:43:47 · 117 阅读 · 0 评论 -
G1 收集器
G1 是jdk7之后的最新的垃圾收集器,目的是取代CMS,达到更小的pause time更高的throughput的目的,能够压缩(CMS不行),更少的停顿(CMS两次),并且可以让用户配置更希望的停顿(pause time goal 不准)G1的原理是,将整个heap分成大小相等的一个个region(每个region的大小1-32M,原理是region个数在2048左右,可以通过参数-XX:...原创 2014-12-16 13:07:44 · 132 阅读 · 0 评论 -
CMS 收集器
CMS的整理CMS是HotSpot VM的server模式下的垃圾收集器,主要作用在Old,Young的回收主要还是使用Paraell收集器CMS设计的目的是low pause time,垃圾收集过程包含4步:<!--[if !supportLists]-->1. <!--[endif]-->初始标记(并行,STW),对Old进行第一次标记,找出所...原创 2014-12-15 20:50:22 · 123 阅读 · 0 评论 -
通过GC日志分析heap分配问题文章
http://www.oracle.com/technetwork/java/example-141412.html原创 2014-12-10 10:57:09 · 219 阅读 · 0 评论 -
Java性能文章
http://www.infoq.com/articles/Tuning-Java-Servers原创 2014-12-05 07:49:25 · 88 阅读 · 0 评论 -
Linux 性能评估
一、影响Linux服务器性能的因素1. 操作系统级CPU内存磁盘I/O带宽网络I/O带宽2. 程序应用级二、系统性能评估标准影响性能因素影响性能因素评判标准好坏糟糕CPUuser% + sys%< 70%user% + sys%= 85%user% + sys% >=90%内存Swap ...原创 2014-11-25 09:54:14 · 85 阅读 · 0 评论 -
Mysql Insert 性能提高
对于insert操作的改进:1. 多条插入,改成一条sql插入,减少解析时间,减少网络IO2. 在多条insert之前开启事物,insert操作mysql默认会开启一次事物,统一放在一个事物中,减少了mysql中的事物操作开销网上传的测试效果:...原创 2014-11-24 15:31:09 · 161 阅读 · 0 评论 -
log4jdbc4 配置
配置log4jdbc4 来显示jdbc真正的使用,及sql和sql时间要用log4j或者slf4j,不支持logback配置pom <dependency> <groupId>log4j</groupId> <artifactId>log4j</artifactId> <version>...原创 2014-11-24 13:35:11 · 245 阅读 · 0 评论 -
项目性能优化经验--ZY(三)
1. 关于读写分离读写分离,不是想做就做的,说分就分的,随便找个中间件把请求一转发就OK的比如,在项目中有个模块是购物车(现在的电子商务一般都需要存储购物车内容,因为存在PC,MOBILE等不同的终端),客户先点击添加购物车,然后结算(这时候会做个判断购物车是否有商品),在大并发情况下,mysql的读库和写库的同步(beanlog)严重的delay,导致购物车一直判断为空,订单无法下...原创 2014-11-24 13:30:24 · 117 阅读 · 0 评论 -
Memory leak reason
1. 高内存使用现在的生产环境都是10,20GB以上的内存,而代码方面的不严谨不修改,盲目的增加内存,加大heap,会导致当系统在大内存下进行gc时的STW的时间变长,这是最常见的高内存使用问题2. HTTP session 当做cache因为http session的易用性,很多开发把太多的object存放在HTTP session中,导致session越来越大(每个用户一个),...原创 2014-11-23 19:45:22 · 147 阅读 · 0 评论 -
一个国外性能优化的例子
http://apmblog.compuware.com/2013/05/07/fix-memory-leaks-in-java-production-applications/说的是,使用第三方logging工具的时候,因为选择了不合适的日志级别,导致工具不支持在高负载情况下工具,塞到队列中的日志没办法remove掉,导致保存日志的队列占满了heap,jvm 就挂了...原创 2014-11-23 14:46:13 · 102 阅读 · 0 评论 -
GC 特点
需要注意的是HotSpot虚拟机使用了两种技术来加快内存分配。他们分别是是”bump-the-pointer“和“TLABs(Thread-Local Allocation Buffers)”。Bump-the-pointer技术跟踪在伊甸园空间创建的最后一个对象。这个对象会被放在伊甸园空间的顶部。如果之后再需要创建对象,只需要检查伊甸园空间是否有足够的剩余空间。如果有足够的空间,对象就会被...原创 2014-11-22 21:45:56 · 309 阅读 · 0 评论 -
高吞吐低延迟Java应用的垃圾回收优化
高性能应用构成了现代网络的支柱。LinkedIn有许多内部高吞吐量服务来满足每秒数千次的用户请求。要优化用户体验,低延迟地响应这些请求非常重要。比如说,用户经常用到的一个功能是了解动态信息——不断更新的专业活动和内容的列表。动态信息在LinkedIn随处可见,包括公司页面,学校页面以及最重要的主页。基础动态信息数据平台为我们的经济图谱(会员,公司,群组等等)中各种实体的更新建立索引,它必须高...原创 2014-11-22 13:40:58 · 77 阅读 · 0 评论 -
spring/Hibernate 优化
对大部分典型的Spring/Hibernate企业应用来说,应用的性能大部分由持久层的性能决定。这篇文章会重温一下怎么去确认我们的应用是否是”数据库依赖(data-bound)”(译者注:即非常依赖数据库,大量时间花在数据库操作上),然后会大概过一下7个常用的提升应用性能的速效方案。怎么确定应用是否是“数据库依赖”确认一个应用是是否是数据库依赖,首先通过在一些开发环境中做基本的运行...原创 2014-11-22 11:31:33 · 97 阅读 · 0 评论 -
@Transcational 原理
碰到了项目的优化时@Transcational的滥用,因此找了一篇文章专门学习本文将深入研究Spring的事务管理。主要介绍@Transactional在底层是如何工作的。之后的文章将介绍:propagation(事务传播)和isolation(隔离性)等属性的使用事务使用的陷阱有哪些以及如何避免JPA和事务管理很重要的一点是JPA本身并不提供任何类型的声明式事务管理。如...原创 2014-11-21 22:12:39 · 416 阅读 · 0 评论 -
项目性能优化经验--ZY(二)
1. hibernate 级联问题项目中,用了很多的LAZY级联,在页面用到的时候再去load,这样就使用Open Session In View的功能,在大并发且网络不好的情况下,会导致session迟迟不能释放(session要等页面request请求完全结束之后才close),即connection也没法释放。之前项目都是使用EAGER,JSON数据传递的方式来处理,整个...原创 2014-11-21 21:10:35 · 108 阅读 · 0 评论 -
c3p0连接池
项目使用 c3p0, hibernatec3p0连接一下子就满了,就是不释放c3p0日志打开:配置log4j.propertieslog4j.rootCategory=INFO, stdout , R log4j.appender.stdout=org.apache.log4j.ConsoleAppender log4j.appender.stdout.layou...原创 2014-11-16 16:32:30 · 250 阅读 · 0 评论 -
防重复提交
看到一篇关于防重复提交的文章,记录一下:#防重复处理总结##背景在业务开发中,我们常会面对防止重复请求的问题。当服务端对于请求的响应涉及数据的修改,或状态的变更时,可能会造成极大的危害。重复请求的后果在交易系统、售后维权,以及支付系统中尤其严重。前台操作的抖动,快速操作,网络通信或者后端响应慢,都会增加后端重复处理的概率。前台操作去抖动和防快速操作的措施,我们首先会想到在前端做一层控...原创 2015-03-31 21:31:06 · 161 阅读 · 0 评论