性能优化
琅琊山二当家
这个作者很懒,什么都没留下…
展开
-
java性能优化之一 VO的使用
之前项目 有批量分页从后台数据库抓数据处理利用了hibernate 等orm 中间件 返回的是一个表结构的list对象 比如 list 如果Order对应表很大,比如40 50个字段传过来list就可能相对较大从vmware 等软件可以看到gc比较高这时候可以使用一个vo 存储返回值,只把需要的几个字段取出来放里面就行了也能减少网络传输开支,和对内存的占用。原创 2016-05-10 13:55:03 · 3240 阅读 · 0 评论 -
Java程序内存分析:使用mat工具分析内存占用
在工作中可能会遇到内存溢出这种灾难性的问题,那么程序肯定是存在问题,找出问题至关重要,上一篇文章讲了jmap命令的使用方法,当然用jmap导出的文件我们也看不懂啊,那就交给memory analyzer(mat)这个工具,让他帮助我们来观察程序的内存分布情况吧。jmap mat 内存分析目录[-]1. 用jmap生成堆信息2. 将堆信息导入到mat中分析转载 2016-05-18 20:13:35 · 869 阅读 · 0 评论 -
使用 VisualVM 进行性能分析及调优
VisualVM 是一款免费的\集成了多个 JDK 命令行工具的可视化工具,它能为您提供强大的分析能力,对 Java 应用程序做性能分析和调优。这些功能包括生成和分析海量数据、跟踪内存泄漏、监控垃圾回收器、执行内存和 CPU 分析,同时它还支持在 MBeans 上进行浏览和操作。本文主要介绍如何使用 VisualVM 进行性能分析及调优。7 评论虞 立军, 资深软件工程转载 2016-05-18 20:18:23 · 1499 阅读 · 0 评论 -
简单java程序测试并发数
package test;import java.io.BufferedReader;import java.io.InputStreamReader;import java.io.PrintWriter;import java.net.HttpURLConnection;import java.net.URL;import java.util.concurrent....原创 2016-05-16 18:40:10 · 5405 阅读 · 0 评论 -
java CountDownLatch测试并发数
package test;import java.io.BufferedReader;import java.io.InputStreamReader;import java.io.PrintWriter;import java.net.HttpURLConnection;import java.net.URL;import java.util.concurrent原创 2016-05-16 20:38:32 · 875 阅读 · 0 评论 -
Tomcat调优总结
Tomcat 优化分为系统优化,Java虚拟机调优,Tomcat本身的优化。Tomcat 如何起停./catalina.sh stop./catalina.sh start/sbin/service tomcat restart /webagme/tomcat/bin/catalina.sh start1.如何调整tomcat的占用内存A: 方法如下:1. li转载 2016-05-20 15:20:15 · 697 阅读 · 0 评论 -
Memory Analyzer Tool使用
重点看的 两个部分 leak tree tree 里面找潜在的项目里面出现的有问题的类原创 2016-06-08 16:40:51 · 742 阅读 · 0 评论 -
failed to allocate XXXX bytes for committing reserved memory.
## There is insufficient memory for the Java Runtime Environment to continue.# Native memory allocation (malloc) failed to allocate 2863333376 bytes for committing reserved memory.# Possible reason原创 2016-06-03 19:32:31 · 18371 阅读 · 0 评论 -
深入了解JVW
Java内存组成介绍:堆(Heap)和非堆(Non-heap)内存按照官方的说法:“Java 虚拟机具有一个堆,堆是运行时数据区域,所有类实例和数组的内存均从此处分配。堆是在 Java 虚拟机启动时创建的。”“在JVM中堆之外的内存称为非堆内存(Non-heap memory)”。可以看出JVM主要管理两种类型的内存:堆和非堆。简单来说堆就是Java代码可及的内存,是留给开发人员使用的;非转载 2016-06-09 23:12:44 · 7096 阅读 · 3 评论 -
使用jprofiler分析dump文件一个实例
1.. jstat 命令先分析一下一次fullgc之后 old 老年代使用比例 只降低2% 应该有什么大的对象常驻内存。 2.可以使用jmap 命令查看对象大小 (这里后面使用jprofiler 就没用这个命令) jmap -histo:live 72947 | more 3 .dump 线上文件栈[root@yszyz10a153 ~]# jmap -dum...原创 2017-12-01 14:48:18 · 32193 阅读 · 2 评论 -
JVM调优总结 + jstat 分析
stat -gccause pid 1 每格1毫秒输出结果jstat -gccause pid 2000 每格2秒输出结果不断的在屏幕打印出结果 S0 S1 E O P YGC YGCT FGC FGCT GCT LGCC GCC转载 2017-12-01 14:53:02 · 4838 阅读 · 0 评论 -
对调用第三方接口的监控策咯
有网友遇到问题: 有遇到这种情况怎么处理? CXF调用webservice接口,接口网络严重超时,已设置超时时间20秒,但是访问量一大造成本地服务假死,怎么去解决?还有如何屏蔽CXF的time out日志 一个思路: 可以做个接口调用情况监控 对于第三方的接口 做一个实时统计,对接口A 调用开始前 对redis 对应的一个key interfaceA +1 ,调用完 -1 ,对第三方接口调用前...原创 2018-03-15 18:07:12 · 2551 阅读 · 1 评论 -
Eclipse Memory Analyzer 使用技巧
Eclipse Memory Analyze 是Java 堆转储文件分析工具,可以帮助你发现内存漏洞和减少内存消耗。 概述 对于大型 JAVA 应用程序来说,再精细的测试也难以堵住所有的漏洞,即便我们在测试阶段进行了大量卓有成效的工作,很多问题还是会在生产环境下暴露出来,并且很难在测试环境中进行重现。JVM 能够记录下问题发生时系统的部分运行状态,并将其存储在堆转储 (Heap D...转载 2016-05-18 20:12:30 · 8832 阅读 · 0 评论 -
Tomcat 7优化前及优化后的性能对比
对于大部分开发人员来说,对其性能还是没有多大了解。本文就对它做一次性能测试,对比优化前后的性能区别。一、运行环境CPU: Intel(R) Pentium(R) P6200@2.13GHz ;内存:4G,装的是32位win7,只认出3G,没有花时间去整ramdisk之类的东西;操作系统:win7 32位;JDK:1.7.0_55Tomcat:7.0转载 2016-05-17 21:36:48 · 750 阅读 · 0 评论 -
Jmeter 测试java并发
晚上完成原创 2016-05-16 18:35:35 · 688 阅读 · 0 评论 -
mysql Threads_created 增长过快的解决
发现 mysql生产上 ,thread_createed 增长过快 , 访问量很小的情况下增加5000 线程新建,网上提到提到增加threads_cacheed 大小 但是我们配 了c3p0的 不科学 我们的c3p0 c3p0.maxPoolSize=15c3p0.minPoolSize=3c3p0.initialPoolSize=3c3p0.maxIdle...原创 2016-05-24 12:40:56 · 20356 阅读 · 1 评论 -
Mysql Tomcat C3p0系统性能调优个人总结(赞!)
应用逻辑 就是用c3p0 到数据库查询数据并http返回Json数据 1 调优前的最初的测试结果 JMeter test resultNo.TypeOriginal1000 data bigger1500Connection250 query/S63q/S70q/转载 2016-05-24 16:54:16 · 1153 阅读 · 0 评论 -
java性能优化之二 循环里面不使用hibernate创建对象
如果大量循环里面创建对象 会导致gc 过高,cpu占有率高,影响系统稳定实在需要循环里面大量创建实体对象 可以使用jdbc插入原创 2016-05-11 17:09:49 · 378 阅读 · 0 评论 -
java性能优化之三 优雅平滑的结束quarts 任务
线上系统 遇到quarts 任务在定时时间内执行不完比如10分钟一次的任务执行不完 后面起来的quarts任务线程会阻塞前面的任务导致任务越来越慢如果这个任务有循环的入口,比如每次从后台抓300条数据处理,可以函数开始设置一个时间点void quartsWork(){time begin ;boolean needEnd =false ;/ / 300条原创 2016-05-11 17:19:29 · 489 阅读 · 0 评论 -
Tomcat的四种基于HTTP协议的Connector性能比较
connectionTimeout="20000" redirectPort="8443"/><Connector executor="tomcatThreadPool" port="8081" protocol="HTTP/1.1" connectionTimeout="2000转载 2016-05-24 22:45:48 · 9857 阅读 · 3 评论 -
Caused by: java.sql.SQLException: An attempt by a client to checkout a Connection has timed out
当并发量大的时候,C3P0连接池会出现如下异常信息:[java] view plain copyCaused by: java.sql.SQLException: An attempt by a client to checkout a Connection has timed out. at com.mchange.v2.sql.Sq转载 2016-05-28 17:08:00 · 2601 阅读 · 0 评论 -
另一份Java应用调优指南之-工具篇
Java应用的调优,再不写都要忘光了,先对付着写完,免费的JMC真的好用,大家越早用上越好。前一篇是三个月前的 另一份Java应用调优指南 - 前菜 1. 土法调优两大件先忆苦思甜,一般人在没有Profile工具的时候,调优的两大件,无非Heap Dump 与 Thread Dump。 1.1 Heap Dump jmap -dump转载 2016-05-29 18:35:09 · 3463 阅读 · 0 评论 -
关键业务系统的JVM启动参数推荐 2.0版
。更新记录:2.0版,增加 -XX:+PerfDisableSharedMem,GC日志指向/dev/shm,避免IO造成的JVM停顿。 前言1,资料学习开源项目的启动脚本是个不错的主意,比如Cassandra家的, 附送一篇解释它的文章。JVM调优的"标准参数"的各种陷阱 R大的文章,在JDK6时写的,期待更新。偶然翻到Linkedin转载 2016-05-29 18:48:59 · 2008 阅读 · 0 评论 -
Java command line options for JVM performance tuning
Posted by Ramakanta Sahoo on February 22, 2012 at 8:33 pm Distributed Java, Installation, Java, Java Errors, JVM Tuning, Must Know,Performance, Threads and Synchronization, Troubleshooting转载 2016-05-29 22:07:01 · 1671 阅读 · 0 评论 -
一次查询耗时的分析过程
测试环境数据移植到生产环境 一个查询从秒查到11s 控制器代码@RequestMapping(value = "list", method = RequestMethod.GET)public ModelAndView list(SearchRevitVO vo, Integer sortType , HttpServletRequest request,@Language String lang原创 2016-05-17 16:50:04 · 924 阅读 · 0 评论 -
Jmeter中的几个重要测试指标释义
Aggregate Report 是 JMeter 常用的一个 Listener,中文被翻译为“聚合报告”。今天再次有同行问到这个报告中的各项数据表示什么意思,顺便在这里公布一下,以备大家查阅。如果大家都是做Web应用的性能测试,例如只有一个登录的请求,那么在Aggregate Report中,会显示一行数据,共有10个字段,含义分别如下。Label:每个 JMeter 的转载 2016-05-17 20:06:33 · 2724 阅读 · 0 评论 -
数据处理过慢的问题分析(涉及插入查询)
数据处理过慢的问题分析(涉及插入查询)同事遇到一个数据处理慢的问题, 先查询A表,然后涉及到查询4张表,插入A表新数据,最后插入对方的一个库B表。现在对插A表,B表使用两个线程来做的 但是发现插入A表很慢,A表数据量慢慢在变大怀疑是插入A表过程的某一步涉及到慢mysql的问题标准的做法是打印出每一步子操作的消耗时间差,发现有一个查询没有加索引,加上后速度提高了10倍。总结:对于表象是插入慢的问题,...原创 2018-06-27 10:44:00 · 1151 阅读 · 0 评论