`
clearity
  • 浏览: 37395 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Java性能的问与答:概述以及Cpu调优

 
阅读更多

Q:当有人说程序运行的很慢的时候,他指的是什么?

A:他通常所指的是两个性能属性中的一个 -- 延迟/扩展性。延迟是描述完成给定任务所需的时间长短,然而扩展性描述的是当负载增加时对性能是如何影响的。构建高性能的应用程序需要

    1.低延迟  --  比如,很短的页面加载时间

    2.高扩展性 -- 比如,在用户量增加的同事不会对性能带来不利的影响

    3.高可用性 -- 比如,保证24 * 7的可用,不会因为内存泄露、数据库连接耗尽或者LDAP服务器而服务不可用

 



 

 

 如上图所示,很多原因都会对性能有所影响。它包括一个设计糟糕的程序、数据库、不能很好扩展的负载不良的架构设计,虚拟机、应用服务器、或者一个性能差劲的sql语句,多个线程同时等待长时间运行的加锁方法、代码块或者数据库记录带来的频繁回溯跟踪产生的线程争用问题。因为对系统稀有资源进行操作消耗的更多的CPU周期带来的过度的垃圾回收或者内存与连接的耗尽等这些内存或者非内存的泄露也都会让性能大打折扣。

 

Q.应该使用什么工具来对程序进行调优?

A.针对java程序的调试,有一些基本工具比如vmstat、hrof、JConsole、JAMon以及PerfAnal,也有一些有更多特性的打包调优工具例如VisualVM、NetBeans profiler、eclipse TPTP(也就是测试和性能工具平台),还有能被用在生产环境中的比如YourKit for Java、JProfiler for Java,还有针对于大规模分布式和集群系统的比如CA Wiley Introscope for Java、HP Sitescope and ClearStone for Java。

 

Q.应该怎么样去进行java程序的调优?

A.下面的例子是用hprof工具来估算java程序运行耗费的cpu时间。根据依赖的底层操作系统不同,在win32上使用Ctrl + \或者Ctrl + Break组合键或者在程序退出的时候将调试信息导出到java.hprof.txt文件中。在Solaris系统或者linux系统上此文件是通过接收退出信号生成的(kill -QUIT)。可以通过jps命令查询到线程id。使用hprof agent执行Profiling Test类来计算耗费的cpu时间的命令格式如下:

 

java -agentlib:hprof=cpu=times test.ProfilingTest 

 

调试信息会被转储到名字为“java.hprof.txt”的文件中。

 

CPU TIME (ms) BEGIN (total = 1953) Thu Sep 15 12:26:50 2011
 
rank  self    accum      count   trace      method
   1   51.20%  51.20%       1   301025   ProfilingTest.invokeMethod3
   2   31.23%  82.44%       1   301015   ProfilingTest.invokeMethod2
   3   15.21%  97.64%       1   301005   ProfilingTest.invokeMethod1
   4   0.82%   98.46%       1   300396   java.net.URLClassLoader$1.run
   5   0.77%   99.23%       2   300707   java.io.Win32FileSystem.normalize
   6   0.77%   100.00%    268   300309   java.lang.StringBuilder.append
CPU TIME (ms) END

 

使用PerfAnal图形化分析工具分析上面的信息

 



 

也可以用相似的方式来分析内存占用信息.

  • 大小: 28.2 KB
  • 大小: 118.1 KB
分享到:
评论

相关推荐

    Java性能调优PPT

    ### Java性能调优知识点概述 #### 一、高性能Java代码编写原则 - **算法与数据结构**:选择合适的数据结构可以极大地提升程序运行效率。例如,对于查找操作频繁的场景,哈希表(如`HashMap`)比链表或数组更高效。...

    Java 性能调优 Java 性能调优 Java 性能调优

    ### Java性能调优概述 #### 一、性能优化的重要性与基本概念 在现代软件开发中,性能优化是一项至关重要的任务。对于Java开发者来说,优化不仅仅意味着让程序运行更快,还包括了减少内存消耗、提高响应速度等多个...

    Java性能调优概述

    Java性能调优是提高Java应用程序效率的关键步骤,它涉及到多个层面和策略,旨在提升程序的执行速度、内存管理、启动时间以及系统负载承受能力。在Java性能调优中,主要关注以下几个方面: 1. 执行速度:程序反应的...

    JAVA性能测试与调优案例

    ### JAVA性能测试与调优案例 #### 一、概述 本文档主要介绍了JAVA应用程序的性能测试及调优方法,覆盖了从JDK选择、JVM配置优化、Tomcat服务器调优到具体应用层面(如JSP、Servlet)的优化策略。通过对实际案例的...

    个人总结之—JVM性能调优实战

    在实际应用开发与维护过程中,JVM性能调优是一个非常重要的话题,它直接关系到应用程序运行效率、资源利用以及用户体验等多方面因素。本总结旨在分享作者在实践中不断探索与总结的经验,为读者提供一份全面而实用的...

    JAVA性能调优 – 概述

    4. 数据库调优:通过优化SQL语句、选择合适的数据库以及数据库软件优化,提高数据库性能。 5. 操作系统调优:如使用Linux系统并调整内存、信号、磁盘等设置,以提高系统整体性能。 优化实践中的一些具体方法: 1. ...

    阿里巴巴java性能调优实战-最新经验总结 PDF

    2. **Java编程性能调优**:包括基础数据类型的优化、集合框架的选择与优化、网络通信的优化等方面。 3. **多线程性能调优**:探讨线程安全问题、锁机制的选择与使用、高并发下的性能优化等话题。 4. **JVM性能监测及...

    HP-UX中的Java应用性能调优概述.doc

    本文将基于给定文件的信息,深入探讨HP-UNIX中Java应用性能调优的关键知识点,涵盖理论基础、工具使用、策略制定以及实践案例,力求为读者提供全面而实用的指导。 ### 一、理论基础 #### 1.1 Java虚拟机(JVM)基础...

    WebSphere应用服务器Java虚拟机性能调优与诊断

    ### WebSphere应用服务器Java虚拟机性能调优与诊断 #### 概述 在现代软件开发领域,特别是企业级应用环境中,IBM WebSphere Application Server (WAS) 的使用极为广泛。作为一款高性能、高可靠性的应用服务器,WAS ...

    大话JAVA性能优化

    但根据标题《大话JAVA性能优化》和描述“虽然有些地方可能过时,但是还是可以一读”以及标签“java 优化”,可以推断出书籍内容可能围绕Java编程语言的性能优化相关知识。基于这些信息,我们可以构建关于Java性能...

    weblogic10.3性能调优

    针对WebLogic Server上的Java EE应用,可以通过以下方式进行调优: - **会话管理和状态管理**:优化会话复制策略和状态持久化方式,减少状态同步带来的延迟。 - **异步处理**:利用WebLogic的异步处理机制,如JMS...

    Java_GC垃圾回收调优指南

    本指南旨在帮助开发者深入理解Java GC的工作原理,并提供一系列调优策略与实例,以确保Java应用能够高效稳定地运行。 #### Java GC基础知识 垃圾回收是一种自动化的内存管理机制,它负责回收不再使用的对象所占用...

    EBS性能调优之全面挖掘_V4.2(ebs性能优化、oracle性能优化、linux性能优化)

    **概述** EBS(Oracle E-Business Suite)性能调优是一项关键任务,它涉及多个层次的优化,包括存储设备、主机、数据库、应用系统、网络和客户端。此文档重点聚焦于应用系统和数据库层面的调优策略,同时也涵盖了一...

    Java 性能优化 一书源码

    它可能涵盖了如何分析性能数据、理解CPU和内存使用情况、选择合适的JVM选项、以及如何有效地进行微调等内容。 4. **更深入的调优**: 文件`tuning`可能包含更深入的性能调优资料,比如具体的代码示例、实验结果...

    性能测试调优

    ### 性能测试调优知识点概述 #### 一、操作系统性能分析基础 ##### 1.1 操作系统性能分析介绍 - **操作系统角色**: 操作系统作为计算机硬件和软件之间的桥梁,负责管理计算机系统的硬件(如CPU、内存、磁盘等)和...

    J2EE性能调优.pdf

    #### 一、概述与原则 J2EE(Java 2 Platform, Enterprise Edition)作为一套全面的企业级应用程序开发框架,其性能调优对于确保大型企业的应用程序能够高效稳定运行至关重要。根据给定文档的标题、描述及部分内容,...

    hadoop调优指南 hadoop调优指南

    为了充分发挥Hadoop的性能优势,进行合理的系统调优是非常必要的。本文将基于提供的标题、描述、标签以及部分内容,深入探讨Hadoop调优的关键知识点。 #### Hadoop概述 Hadoop是一个开源软件框架,用于分布式存储...

    Java性能优化实战视频全集

    ### Java性能优化实战知识点概述 #### 一、理论分析篇 **1.1 性能优化的衡量指标及注意事项** - **衡量指标**: 包括响应时间、吞吐量、资源利用率等。 - **注意事项**: 在进行性能优化时,需确保优化方案不会引入...

    visualvm 教程 介绍 性能调优

    《VisualVM:深入浅出的性能调优工具》 VisualVM,一款强大的Java应用程序性能分析工具,由Oracle公司开发并维护,是Java开发者不可或缺的利器。它提供了丰富的功能,包括实时监控、内存分析、线程分析、JVM配置...

Global site tag (gtag.js) - Google Analytics