java技术---优化(MyEclipse,Tomcat,JVM)

1.优化myeclipse,主要是去除不需要加载的模块
1.1.关闭updating indexes

  下面就是关闭此功能的方法:
      Window =>Preferences =>
      Myeclipse Enterprise Workbench
      =>Maven4Myeclipse => Maven=>
      禁用Download repository index updates on startup
  如要需要下载的话直接 cmd   maven install 好了

1.2.我们在大多数时候只需要20%的系统功能,所以可以将一些不使用的模块禁止 加载启动,从而达到优化目的

   下面是关闭加载项的方法:
windows–>perferences–>general–>startup and shutdown 关掉没用的启动项
1.通过Windows - Preferences打开配置窗口
2.依次选择左侧的General - Startup and Shutdown
3.这个时候在右侧就显示出了Eclipse启动时加载的模块,可以根据自己的实际情况去除一些模块
4.怎样才能知道哪些启动项有用,哪些没有,现简单介绍如下:
 (1)WTP :一个跟myeclipse差不多的东西,主要差别是 WTP 是免费的,如果使用myeclipse,这个可以取消 
 (2)Mylyn:组队任务管理工具,类似于 CVS ,以任务为单位管理项目进度,没用到的可以取消 
 (3)Derby:一种保存成 jar 形式的数据库
 (4)MyEclipse EASIE 打头的启动项:myeclipse 支持的服务器,只选自己用的,其他取消,比如只选了tomcat 
 (5)取消MyEclipse在启动时自动验证项目配置文件
 windows–>perferences–>myeclipse–>validation 把 除了manual 下面的全部点掉,build下只留 classpath dependency Validator 
 windows–>perferences–>general–>validation->editors->Text Editors->spelling myeclipse 打开 jsp 的默认编辑器不好,会同时打开预览 windows–>perferences–>general–>editors->file associations, 把默认改成 MyEclipse JSP Editor

2.优化Tomcat:
tomcat默认参数是为开发环境制定,而非适合生产环境,尤其是内存和线程的配置,默认都很低,容易成为性能瓶颈

  2.1.在Tomcat配置文件conf下面 server.xml 中的配置中和连接数相关的参数有:
 (1)minProcessors:最小空闲连接线程数,用于提高系统处理性能,默认值为10
(2)maxProcessors:最大连接线程数,即:并发处理的最大请求数,默认值为75
(3)acceptCount:允许的最大连接数,应大于等于maxProcessors,默认值为100
(4)enableLookups:是否反查域名,取值为:true或false。为了提高处理能力,应设置为false
(5)connectionTimeout:网络连接超时,单位:毫秒。设置为0表示永不超时,这样设置有隐患的。通常可设置为30000毫秒  
2.2.默认的tomcat 参数:
<Connector port="8080" 
protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" />
修改:
<Connector port=“8080" protocol="org.apache.coyote.http11.Http11NioProtocol"
maxThreads="600"
minSpareThreads="100"
maxSpareThreads="500"
acceptCount="700"
connectionTimeout="20000"
redirectPort="8443" />
参数说明:
(1)protocol="org.apache.coyote.http11.Http11NioProtocol" 使用java的异步io护理技术,no blocking IO
(2)maxThreads=“600" 表示最多同时处理600个连接最大线程数
(3)minSpareThreads=“100" 表示即使没有人使用也开这么多空线程等待,初始化时创建的线程数
(4)maxSpareThreads=“500" 表示最多可以空500个线程,一旦创建的线程超过这个值,Tomcat就会关闭不再需要的socket线程。
(5)acceptCount="700" 指定当所有可以使用的处理请求的线程数都被使用时,可以放到处理队列中的请求数,超过这个数的请求将不予处理
2.3.ajp协议优化
  (1)如果使用apache和tomcat做集群的负载均衡,并且使用ajp协议做apache和tomcat的协议转发,需要优化ajp connector
  <Connector port="8009"
   protocol="AJP/1.3" 
   maxThreads="600" 
   minSpareThreads="100"
   maxSpareThreads="500" 
   acceptCount="700"
   connectionTimeout="20000"
   redirectPort="8443" />

3.优化JVM

 (1) jvm调优主要是针对垃圾收集器的收集性能优化
 (2)对于jvm调优来说,我们需要知道以下三个定义属性  
   吞吐量:重要指标之一,是指不考虑垃圾收集引起的停顿时间或内存消耗,垃圾收集器能支撑应用达到的最高性能指标
   延迟:其度量标准是缩短由于垃圾收集引起的停顿时间或者完全消除因垃圾收集所引起的停顿,避免应用运行时发生抖动
   内存占用:垃圾收集器流畅运行所需要 的内存数量
 (3)这三个属性中,其中一个任何一个属性性能的提高,几乎都是以另外一个或者两个属性性能的损失作代价,不可兼得
 (4)在调优过程中,应该谨记以下3个原则
    MinorGC回收原则: 每次minor GC 都要尽可能多的收集垃圾对象。以减少应用程序发生Full GC的频率
    GC内存最大化原则:处理吞吐量和延迟问题时候,垃圾处理器能使用的内存越大,垃圾收集的效果越好,应用程序也会越来越流畅
    GC调优3选2原则: 在性能属性里面,吞吐量、延迟、内存占用,我们只能选择其中两个进行调优,不可三者兼得

4.jvm堆中主要的空间,就是以上整个堆大小=新生代大小 + 老生代大小 + 永久代大小
5.目前jvm下的自动调整已经做的比较优秀,基本的一些初始参数都可以保证一般的应用跑的比较稳定了,对部分团队来说,程序性能可能优先级不高,默认垃圾收集器已经够用了

上一篇:MyEclipse使用教程:使用DevStyle增强型启动


下一篇:VS2012环境设置