自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(8)
  • 收藏
  • 关注

原创 性能调优三步走

在性能调优前,我们首先需要制定性能调优目标(响应时间和TPS),这个可以根据业务场景,线上服务器集群配置等来确定。确定好目标就可以准备数据、压力测试脚本了,这些都完成后就一个一个场景进行测试,对不能达到目标的场景再寻找瓶颈所在,那么如何来找到瓶颈呢?概括来说就是使用排除法,比如说在应用程序层面,可以将怀疑有性能瓶颈的代码注释起来,再跑一次测试脚本,看响应时间和TPS的变化,直到找到最终瓶颈所在的代码块。        调优时可以从以下三个层面入手:1.       应用程序优化应用程序优化主要指的是从应用代

2011-05-31 17:39:00 970

原创 对HashMap排序

<br />      在项目中有个业务场景,需要对访问我店铺轨迹按访问次数排序,访问我店铺轨迹保存在HashMap中,key为访问次数。不知道大家会怎样实现对HashMap的排序,排序之后保存为一个List。HashMap是无序的,如果需要使用有序的Map,可以使用TreeMap。<br />      <br />      HashMap和TreeMap有如下区别:<br />特性HashMapTreeMap排序无序有序数据结构Hash表平衡树实现的接口(抽象类)AbstractMap抽象类Sorte

2011-05-16 20:30:00 906

原创 解决mysql连接异常—-com.mysql.jdbc.CommunicationsException: Communications link failure due to underlying exception

<br />      前两天机房搬迁,DNS域名切换,导致出现如下异常。经查原因发现,是连接池中的连接在应用端空闲,但该连接的vip(服务器集群地址)已经超时(超时时间是60s,而应用端的连接回收时间是180s),所以当再次使用该连接时会出现连接失效的异常。解决办法是将vip的超时时间调大,改成300s,这样就能保证连接池中的等待连接不会因为vip的超时而失效。<br />异常如下:<br />org.springframework.dao.DataAccessResourceFailureExcepti

2011-05-16 20:25:00 11743

原创 java对象初始化顺序

<br />java对象初始化遵循以下原则:<br /> <br />1.先父类后子类,依据2-7原则,交替初始化;<br />2.先分配静态成员空间,并初始化静态成员;<br />3.执行静态代码块;<br />4.为对象分配内存空间,执行默认初始化,即所有变量初始化为默认值;<br />5.显示初始化,即对成员进行赋值;<br />6.执行非静态代码块;<br />7.调用构造函数执行;

2011-05-16 20:24:00 869

原创 ThreadPoolExecutor线程池参数说明

之前做的一个项目,由于消息量太大,为缓解消息发送服务器的压力,将接收消息由之前的同步处理改成了异步处理,即收到一条消息交给一个线程处理,马上返回接收成功给服务器。这样就涉及到多线程和线程池,在做压力测试时总感觉这个线程池的状态不对,当前线程数总上不去,原来忽略了一个逻辑,就是当前线程数到达核心线程数时,后面的请求就会加到任务队列里,任务队列满了之后才会去创建新的线程,一直达到允许的最大线程数为止。在测试过程中,主要监控了线程池(java.util.concurrent.ThreadPoolExecutor)

2011-05-16 20:15:00 5175

原创 SecureCRT乱码问题解决方法

<br />网上有很多达人给出了SecureCRT登录linux,中文乱码问题的解决办法,我这里总结一下解决思路,原因还是SecureCRT客户端字体/字符集的原因,主要分以下两种情况解决:一 后台刷日志时(tail –f logs/jboss_stdout.log)<br />首先,确保Linux下的文件(比如日志)在Windows下打开没有乱码,显示正常就表明linux的字符集设置没有问题,不用去修改;<br />其次,修改SecureCRT中的Session Options参数配置,如图中的红框:<b

2011-05-16 19:56:00 42263 1

原创 高级语言分类特性

<br />在介绍一门语言时,总会提到编译型、解释型、脚本、动态这些特性,其实了解了语言的翻译过程也就可以给它归类了。<br /> <br />计算机不能直接理解高级语言,只能直接理解机器语言,所以必须要把高级语言翻译成机器语言,计算机才能执行高级语言编写的程序。翻译的方式有两种,一个是编译,一个是解释。两种方式只是翻译的时间不同。<br /> <br />编译型语言(Compiling Languages):程序在执行之前,需要先编译成机器语言文件,比如exe,运行的时候不需要再去翻译,直接运行就行,所以

2011-05-16 19:46:00 3515

原创 动态代理:JDK动态代理和CGLIB代理的区别

AOP包括切面(aspect)、通知(advice)、连接点(joinpoint),实现方式就是通过对目标对象的代理在连接点前后加入通知,完成统一的切面操作。1.JDK动态代理当一个对象(客户端)不能或者不想直接引用另一个对象(目标对象),这时可以应用代理模式在这两者之间构建一个桥梁--代理对象,此代理对象和目标对象实现了相同的接口,目标对象作为代理对象的一个属性,具体接口实现中,可以在调用目标对象相应方法前后加上其他业务处理逻辑。代理模式在实际使用时需要指定具体的目标对象,如果为每个类都添加一个代理类的话

2011-05-16 00:14:00 27545 4

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除