性能与调优
文章平均质量分 86
keke_Xin
这个作者很懒,什么都没留下…
展开
-
Java程序性能优化(二十三条)
Java程序性能优化 一、避免在循环条件中使用复杂表达式 在不做编译优化的情况下,在循环中,循环条件会被反复计算,如果不使用复杂表达式,而使循环条件值不变的话,程序将会运行的更快。 例子:import java.util.Vector;class CEL { void method (Vector vector) { for (int ...原创 2013-06-01 21:41:19 · 109 阅读 · 0 评论 -
java性能调试工具JProfiler简介与学习笔记
JProfiler是一个全功能的Java剖析工具(profiler),专用于分析J2SE和J2EE应用程序。目录1简介2作用3JProfiler支持以下操作模式: 1简介编辑JProfiler[1]是一个商业授权的Java剖析工具,由EJ技术有限公司,针对的Java EE和Java SE应用程序开发...原创 2014-03-05 16:16:19 · 319 阅读 · 0 评论 -
Java内存溢出分析
内存溢出与数据库锁表的问题,可以说是开发人员的噩梦,一般的程序异常,总是可以知道在什么时候或是在什么操作步骤上出现了异常,而且根据堆栈信息也很容易定位到程序中是某处出现了问题。内存溢出与锁表则不然,一般现象是操作一般时间后系统越来越慢,直到死机,但并不能明确是在什么操作上出现的,发生的时间点也没有规律,查看日志或查看数据库也不能定位出问题的代码。更严重的是内存溢出与数据库锁表在系统开发和单元...原创 2014-03-05 16:17:36 · 102 阅读 · 0 评论 -
Java内存溢出解决方案
一、内存溢出类型1、java.lang.OutOfMemoryError: PermGen spaceJVM管理两种类型的内存,堆和非堆。堆是给开发人员用的上面说的就是,是在JVM启动时创建;非堆是留给JVM自己用的,用来存放类的信息的。它和堆不同,运行期内GC不会释放空间。如果web app用了大量的第三方jar或者应用有太多的class文件而恰好MaxPermSize设置较小,超出了...原创 2014-03-05 16:19:34 · 101 阅读 · 0 评论 -
FindBugs简介(检查代码质量问题的工具,可以集成到Eclipse中)
静态分析工具承诺无需开发人员费劲就能找出代码中已有的缺陷。当然,如果有多年的编写经验,就会知道这些承诺并不是一定能兑现。尽管如此,好的静态分析工具仍然是工具箱中的无价之宝。在这个由两部分组成的系列文章的第一部分中,高级软件工程师Chris Grindstaff 分析了 FindBugs 如何帮助提高代码质量以及排除隐含的缺陷。代码质量工具的一个问题是它们容易为开发...原创 2014-03-12 18:19:12 · 421 阅读 · 0 评论 -
一同事为中间件处理内存泄漏问题的解决方案(调整JVM参数)
author: li guangju @ HT今天外汇交易中心的out of memory error的问题基本解决,截止到下班为止,测试环境系统运行稳定,没有出现问题。(1).这两天观察到的问题主要是JVM配置不当的问题,已基本解决。在处理JVM配置之前,测试环境初始的JVM配置参数为:-Xms768m -Xmx768mJVM某一时刻的heap情况如下(其他时刻也跟此基...原创 2014-03-12 22:51:18 · 352 阅读 · 0 评论 -
Java内存泄露的理解与解决(转)
下面是关于内存泄露的讲解,还有一个是内存泄露与内存溢出的比较的,是百度文库中的,写的挺好挺全面的,网址如下:http://wenku.baidu.com/link?url=W4XCMt2w_wWN6lcno_GNVdxO_P5Kqw0SIyP_WgFdD2pYpiYmxO-Pb5s7gIhx9sLXzF7x566pEljHjdSfHcpPzoXMrcPAvN11rUo9bD4L8mC ...原创 2014-03-19 18:54:33 · 147 阅读 · 0 评论 -
用 JMeter 完成常用的压力测试(Apache)
转自:http://www.ibm.com/developerworks/cn/opensource/os-pressiontest/本文介绍了 JMeter 相关的基本概念。并以 JMeter 为例,介绍了使用它来完成最常用的三种类型服务器,即 Web 服务器、数据库服务器和消息中间件,压力测试的方法、步骤以及注意事项。1 评论:胡 键 (jian...原创 2015-02-12 17:28:15 · 141 阅读 · 0 评论 -
SQL Query Analyzer 简介(数据库查询分析再进行优化)
SQL Query Analyzer 是一个图形化的管理工具,主要用于编写、测试Transact-SQL 语句、批处理。系统管理员和开发者通过SQL Query Analyzer 能够同时执行多个查询、查看查询结果、分析查询计划,从而了解如何提高查询执行的性能。从SQL Server Enterprise Manager 可以将其启动。SQL Query Analyzer 提供了以下特性:...原创 2013-10-10 16:41:36 · 2701 阅读 · 0 评论 -
使用 Eclipse Memory Analyzer 进行堆转储文件分析(分析内存溢出问题)
Eclipse Memory Analyzer(MAT)是著名的跨平台集成开发环境 Eclipse Galileo 版本的 33 个组成项目中之一,它是一个功能丰富的 JAVA 堆转储文件分析工具,可以帮助你发现内存漏洞和减少内存消耗。本文主要介绍如何安装配置 Memory Analyzer,并结合一个实例,介绍如何利用 MAT 来进行堆转储文件分析,找到内存泄露的根源。概述对于大型 J...原创 2013-10-12 18:43:30 · 175 阅读 · 0 评论 -
网络编程高性能IO:Reactor和Proactor介绍
1、标准定义两种I/O多路复用模式:Reactor和Proactor一般地,I/O多路复用机制都依赖于一个事件多路分离器(Event Demultiplexer)。分离器对象可将来自事件源的I/O事件分离出来,并分发到对应的read/write事件处理器(Event Handler)。开发人员预先注册需要处理的事件及其转自:http://www.cnblogs.com/dawen/a...原创 2015-03-08 23:11:51 · 118 阅读 · 0 评论 -
Alipay线上Profiling/Debugging(转)
转自:http://www.iteye.com/news/30570 从1995年Java1.0beta发布到现在,整整过去了20年。Java的发明源于嵌入式领域,不过后来Java的发展,出乎意料地在企业级应用领域占据了几乎统治的地位。阿里巴巴以及支付宝(就是后来的蚂蚁金服),绝大部分的业务代码都是Java编写的。在Java20岁生日这年,我们用这篇文章记录蚂蚁金服内部,在金融云环境下J...原创 2015-06-03 16:34:36 · 190 阅读 · 0 评论 -
Java常见内存溢出异常分析
转自:http://www.iteye.com/news/30121 Java虚拟机规范规定JVM的内存分为了好几块,比如堆,栈,程序计数器,方法区等,而Hotspot jvm的实现中,将堆内存分为了三部分,新生代,老年代,持久带,其中持久带实现了规范中规定的方法区,而内存模型中不同的部分都会出现相应的OOM错误,接下来我们就分开来讨论一下。 栈溢出(StackOverflowError...原创 2015-06-03 16:36:24 · 161 阅读 · 0 评论 -
JAVA对象与垃圾回收
JAVA对象与垃圾回收 我们在一开始的时候就说过,JAVA的垃圾回收是JAVA语言的重要功能之一,当程序创建对象,数组等引用类型实体时,系统都会在堆内存中为之分配一块内存区,对象就保存在这块内存区中,当这块内存不再被任何引用变量引用时,这块内存就变成垃圾,等待垃圾回收机制进行回收。 》垃圾回收机制只负责回收堆内存中的对象,不会回收任何物理资源(例如数据库连接,网...原创 2014-03-04 17:53:44 · 110 阅读 · 0 评论 -
Java内存管理与垃圾回收详解
很多Java面试的时候,都会问到有关Java垃圾回收的问题,提到垃圾回收肯定要涉及到JVM内存管理机制,Java语言的执行效率一直被C、C++程序员所嘲笑,其实,事实就是这样,Java在执行效率方面确实很低,一方面,Java语言采用面向对象思想,这也决定了其必然是开发效率高,执行效率低。另一方面,Java语言对程序员做了一个美好的承诺:程序员无需去管理内存,因为JVM有垃圾回收(GC),会去自动...原创 2014-03-04 17:18:27 · 117 阅读 · 0 评论 -
java内存,性能分析工具Optimizeit Profiler介绍(类似MAT,JConsole等)
转自:http://wangfc123.blog.163.com/blog/static/157468012010530102019387/本文通过介绍Optimizeit Profiler的 一些主要特征来使你对它有个简要的了解。如果想要知道更多的信息,请查看Optimizeit Profiler用户手册。可以从Optimizeit Profiler单击 主菜单info|help来查...原创 2014-03-04 15:33:22 · 1779 阅读 · 0 评论 -
java编程时如何节省内存,效率高(转)
转自:http://blog.csdn.net/wanlixingzhe/article/details/7387378 从理论上来讲Java做的系统并不比其他语言开发出来的系统更占用内存,那么为什么却有这么多理由来证明它确实占内存呢?两个字,陋习。 1、别用new Boolean()。 在很多场景中Boolean类型是必须的,比如JDBC中boolean类型的set与get都是...原创 2013-06-01 21:47:13 · 116 阅读 · 0 评论 -
优化技巧分享:把内存消耗降低至原来的1/20
摘要:Plumbr是一家Java存泄露检测器开发公司,在最近的客户报告中,他们发现了一个内存耗尽相关的问题。在检测后他们查出了问题所在,通过优化最终降低了21.5倍的堆内存。这是最近发生的又一起内存相关的事件了。这个案例是从一个最近的客户报告中提取出来,一个异常运行的应用在其产品中反复报告内存耗尽。这个症状是由我们的一个实验性功能发现,它主要用来监测某一类数据结构的使用情况。它提供...原创 2013-06-05 10:32:21 · 188 阅读 · 0 评论 -
(多核并行)JDK 7 中的 Fork/Join 模式
JDK 7 中的 Fork/Join 模式轻松实现多核时代的并行计算甘 志 (ganzhi@cn.ibm.com), 软件工程师, IBM 中国软件实验室(CSDL BJ)戴 晓君 (daixiaoj@cn.ibm.com), 软件工程师, IBM 中国软件实验室(CSDL BJ)简介: 随着多核时代的来临,软件开发人员不得不开始关注并行编程领域。而 JD...原创 2013-08-08 23:54:51 · 198 阅读 · 0 评论 -
LVS+Keepalived实现高可用集群(转)
操作系统平台:CentOS5.2 软件:LVS+keepalivedLVS+Keepalived 介绍LVS LVS是Linux Virtual Server的简写,意即Linux虚拟服务器,是一个虚拟的服务器集群系统。本项目在1998年5月由章文嵩博士成立,是中国国内最早出现的自由软件项 目之一。目前有三种IP负载均衡技术(VS/NAT、VS/TUN和VS/DR); 十种调度算法(rrr|wr...原创 2014-01-07 23:26:19 · 131 阅读 · 0 评论 -
天猫浏览型应用的CDN静态化架构演变(大型网站架构篇)(转)
转自:http://www.iteye.com/news/28732-CDN-Architecture-Tmall在天猫双11活动中,商品详情、店铺等浏览型系统,通常会承受超出日常数倍甚至数十倍的流量冲击。随着历年来双11流量的大幅增加,每年这些浏览型系统都要面临容量评估、硬件扩容、性能优化等各类技术挑战。因此,架构方面的重点在于,如何能够利用合理成本应对瞬间飙高的峰值请求,并确保活动完整周期中...原创 2014-01-24 18:13:04 · 137 阅读 · 0 评论 -
CDN简介(Content Delivery Network,内容分发网络)
CDN的全称是Content Delivery Network,即内容分发网络。其目的是通过在现有的Internet中增加一层新的网络架构,将网站的内容发布到最接近用户的网络"边缘",使用户可以就近取得所需的内容,解决Internet网络拥挤的状况,提高用户访问网站的响应速度。从技术上全面解决由于网络带宽小、用户访问量大、网点分布不均等原因所造成的用户访问网站响应速度慢的问题。 CDN互...原创 2014-01-24 18:20:27 · 425 阅读 · 0 评论 -
JVM优化
1. Heap设定与垃圾回收Java Heap分为3个区:Young,Old和Permanent。Young保存刚实例化的对象,当该区被填满时,GC会将对象移到Old区。Permanent区则负责保存反射对象,本文不讨论该区。JVM的Heap分配可以使用-X参数设定,-Xms初始Heap大小-Xmxjava heap最大值...原创 2013-08-27 11:01:15 · 109 阅读 · 0 评论 -
数据库性能优化详解
数据库性能优化详解 性能调节的目的是通过将网络流通、磁盘 I/O 和 CPU 时间减到最小,使每个查询的响应时间最短并最大限度地提高整个数据库服务器的吞吐量。为达到此目的,需要了解应用程序的需求和数据的逻辑和物理结构,并在相互冲突的数据库使用之间(如联机事务处理 (OLTP) 与决策支持)权衡。对性能问题的考虑应贯穿于开发阶段的全过程,不应只在最后实现系统时才考虑性能问题。许多使性能得到显著提高...原创 2013-08-27 17:45:52 · 286 阅读 · 0 评论 -
数据库优化措施
1、1、调整数据结构的设计。这一部分在开发信息系统之前完成,程序员需要考虑是否使用ORACLE数据库的分区功能,对于经常访问的数据库表是否需要建立索引等。 2、2、调整应用程序结构设计。这一部分也是在开发信息系统之前完成,程序员在这一步需要考虑应用程序使用什么样的体系结构,是使用传统的Client/Server两层体系结构,还是使用Browser/Web/Database的三层体系结构。不同的应用...原创 2013-08-27 17:47:44 · 163 阅读 · 0 评论 -
数据库访问优化法则简介
特别说明:1、 本文只是面对数据库应用开发的程序员,不适合专业DBA,DBA在数据库性能优化方面需要了解更多的知识;2、 本文许多示例及概念是基于Oracle数据库描述,对于其它关系型数据库也可以参考,但许多观点不适合于KV数据库或内存数据库或者是基于SSD技术的数据库;3、 本文未深入数据库优化中最核心的执行计划分析技术。 读者对像:开发人员:如果你是做数据库开发...原创 2013-08-28 09:18:51 · 139 阅读 · 0 评论 -
提高系统性能数据库设计的横向分割和纵向分割技术
本文介绍一些关于提高系统性能方面的知识,列分割,行分割,实例分割,物理存储分割等技术。这篇主要讲解一下数据库的设计,因为一个好的数据结构,对整体系统的运作太重要了,请看看本文的内容。提到程序性能,大家都知道时间复杂度的公式O(f(n))。在提高性能的这个迷局中,很多人都会想尽办法降低算法函数f的复杂度,或者是提高函数f的运行 速度。但是这些都是没有办法的办法,是舍本求末的办法。如果基数n巨大...原创 2014-02-18 11:43:41 · 268 阅读 · 0 评论 -
JProbe Suite (Java最佳的性能调优组件工具包)
Java和J2EE业务应用程序中的性能非常重要。当数以千计的用户使用您的应用程序时,您不能承担忽略影响应用程序可靠性和伸缩性的问题所带来的风险,和承担性能瓶颈、内存泄漏、进程以及未测试代码等问题。您也不能承担在系统体系结构上再继续花费。造成应用程序中代码错误通常由于代码虽然是源代码,然而许多开发组在开发高性能过程中不能执行最佳的操作。因此您必须管理性能,管理风险。JProbe Suite 5...原创 2014-02-21 18:49:10 · 507 阅读 · 0 评论 -
关于Java启动时的速度优化
转自:http://hellojava.info/?p=176 参考:http://www.atatech.org/articles/41454 很多流量大的Java应用在重启的瞬间很容易出现负载比较高的现象,通常会看到的原因可能是GC线程、业务处理线程以及JVM编译线程耗CPU较多,这个问题在目前要解决其实是比较困难的,原因如下。Java程序在启动的时候所有代码的执行都处...原创 2015-09-28 12:32:28 · 1476 阅读 · 0 评论