Java
席飞剑
10年+软件测试经验TIB自动化测试工作室核心成员ATF关键字驱动框架核心设计和开发人员熟悉软件自动化测试性能测试多年专职从事软件项目的自动化测试和性能测试对自动化测试的框架设计开发框架搭建以及实施有丰富的实战经验目前关注开源自动化测试领域基于Selenium构建Web自动化测试框架以及手机自动化测试的研究为多家企业进行自动化测试培训和指导
展开
-
JVM内存参数详解以及配置调优(二)-Heap参数
JVM内存参数详解以及配置调优(二)-JVM堆参数配置JVM参数配置 1: heap size a: -Xmx 指定 jvm 的最大 heap 大小 , 如 :-Xmx=2g b: -Xms 指定 jvm 的最小 heap 大小 , 如 :-Xms=2g , 高并发应用, 建议和-Xmx一样, 防止因为内存收缩/突然增大带来的性能影响。 c: -Xmn 指定原创 2012-12-23 11:19:31 · 24602 阅读 · 0 评论 -
一个最简单的javaagent demo实例
JavaAgent 是JDK 1.5 以后引入的,也可以叫做Java代理。JavaAgent 是运行在 main方法之前的拦截器,它内定的方法名叫 premain ,也就是说先执行 premain 方法然后再执行 main 方法。那么如何实现一个 JavaAgent 呢?很简单,只需要增加 premain 方法即可,后续可以在此基础上实现注入拦截,AOP等。package com.xifj.age...原创 2018-04-18 16:13:41 · 14529 阅读 · 7 评论 -
浅读Java虚拟机
理解Java虚拟机结构是Java从业人员必备技能,下面描述Java虚拟机结构、垃圾收集器与内存分配策略,在排查java性能问题以及性能优化时大有帮助,掌握Java虚拟机20%的知识能解决工作中80%的Java性能诊断及优化(与JVM相关)问题。更深入的知识请自行研究源码。一、Java虚拟机结构1、程序计数器:是最小的一块内存区域,它的作用是当前线程所执行的字节码的行号指示器,在虚拟机的模型里,字节...原创 2018-04-01 22:54:19 · 739 阅读 · 0 评论 -
MAT(Memory Analyzer Tool)工具入门介绍
1、MAT是什么? MAT(Memory Analyzer Tool),一个基于Eclipse的内存分析工具,是一个快速、功能丰富的JAVA heap分析工具,它可以帮助我们查找内存泄漏和减少内存消耗。使用内存分析工具从众多的对象中进行分析,快速的计算出在内存中对象的占用大小,看看是谁阻止了垃圾收集器的回收工作,并可以通过报表直观的查看到可能造成这种结果的对象。 2.为什么原创 2014-01-19 00:38:46 · 6567 阅读 · 1 评论 -
Java如何对HashMap按值进行排序
HashMap的值是没有顺序的,它是按照key的HashCode来实现的。对于这个无序的HashMap我们要怎么来实现排序呢?(TreeMap类似)import java.util.ArrayList;import java.util.Arrays;import java.util.Collections;import java.util.Comparator;import java.ut原创 2015-06-16 19:54:56 · 43140 阅读 · 3 评论 -
GC学习必备知识
GC学习笔记这是我公司同事的GC学习笔记,写得蛮详细的,由浅入深,循序渐进,让人一看就懂,特转到这里。一、GC特性以及各种GC的选择1、垃圾回收器的特性2、对垃圾回收器的选择2.1 连续 VS. 并行2.2 并发 VS. stop-the-world2.3 压缩 VS. 不压缩 VS. 复制二、GC性能指标三、分代回收四、J2SE 5.0的HotSpot转载 2014-01-19 00:27:34 · 4419 阅读 · 0 评论 -
jstat命令(Java Virtual Machine Statistics Monitoring Tool)
1、介绍Jstat用于监控基于HotSpot的JVM,对其堆的使用情况进行实时的命令行的统计,使用jstat我们可以对指定的JVM做如下监控:- 类的加载及卸载情况- 查看新生代、老生代及持久代的容量及使用情况- 查看新生代、老生代及持久代的垃圾收集情况,包括垃圾回收的次数及垃圾回收所占用的时间- 查看新生代中Eden区及Survior区中容量及分配情况等jstat工具特别原创 2014-01-19 00:32:56 · 3409 阅读 · 0 评论 -
jmap命令(Java Memory Map)
1、介绍打印出某个java进程(使用pid)内存内的,所有‘对象’的情况(如:产生那些对象,及其数量)。 可以输出所有内存中对象的工具,甚至可以将VM 中的heap,以二进制输出成文本。使用方法 jmap -histo pid。如果连用SHELL jmap -histo pid>a.log可以将其保存到文本中去,在一段时间后,使用文本对比工具,可以对比出GC回收了哪些对象。jmap -原创 2014-01-19 00:36:06 · 8311 阅读 · 1 评论 -
JConsole命令(Java Monitoring and Management Console)
一、JConsole是什么 从Java 5开始 引入了 JConsole。JConsole 是一个内置 Java 性能分析器,可以从命令行或在 GUI shell 中运行。您可以轻松地使用 JConsole(或者,它更高端的 “近亲” VisualVM )来监控 Java 应用程序性能和跟踪 Java 中的代码。二、如何启动JConsole如果是从命令行启动,使 JDK 在原创 2014-01-19 00:34:00 · 9056 阅读 · 5 评论 -
Java VisualVM(Java Virtual Machine Monitoring, Troubleshooting, and Profiling Tool)
一.Java VisualVM 概述 对于使用命令行远程监控jvm太麻烦 。在jdk1.6中 Oracle 提供了一个新的可视化的。JVM 监控工具 Java VisualVM 。jvisualvm.exe在JDK的 bin 目录下。 双击启动 Java VisualVM 后可以看到窗口左侧 “应用程序 ”栏中有“本原创 2014-01-19 00:36:42 · 3513 阅读 · 0 评论 -
exception in thread main java.lang.NoClassDefFoundError wrong name解决方法
初学java时,在执行java文件时,可能会遇到java代码能编译通过,但执行文件时出现:exception in thread main java.lang.NoClassDefFoundError wrong name的错误。当不含包层次的HelloWorld.java代码(此时程序运行正常)public class HelloWorld{ public static voi原创 2013-04-21 20:45:32 · 43283 阅读 · 4 评论 -
Picked up JAVA_TOOL_OPTIONS: -agentlib:jvmhook解决方法
有时候电脑中进行java -version相关的操作时,会出现Picked up JAVA_TOOL_OPTIONS: -agentlib:jvmhook提示信息,尽管这些提示信息不影响JDK的正常使用,这些不该出现的信息总是令人看着不太舒服。有关 Picked up _JAVA_OPTIONS系列错误抛出的问题,这类错误多半是由于在本地正常安装了JDK 或者JRE后,再安装了其它会添加或原创 2013-04-21 14:52:08 · 58702 阅读 · 7 评论 -
使用Purify进行java代码内存泄漏检测与诊断
近期研究了一下Purify,用于C/C++/Java/.net程序的内存检测与诊断,本文中介绍了Purify的工作原理及使用方法,以一段Java程序进行内存泄露为示例,分析内存泄露的真实原因,由于本文中图片较多,在这里上传和插入图片实在太费劲了,给出一个链接供参考:http://www.docin.com/p-557099376.html原创 2012-12-18 16:56:45 · 2532 阅读 · 0 评论 -
JVM内存参数详解以及配置调优(四)-GC日志
JVM内存参数详解以及配置调优(四)-输出日志文件在进行JVM内存分析时,可以将一些日志文件进行输出,帮助我们进行性能诊断,在JVM的启动参数中添加需要的参数即可:-verbose:gc 输出一些GC信息-XX:+PrintGCDetails 输出GC详细信息-XX:+PrintGCTimeStamps 包含时间戳信息-Xloggc:filename 输出GC信息到日志文原创 2013-01-08 11:30:22 · 5635 阅读 · 0 评论 -
JVM内存参数详解以及配置调优(一)-基本概念
JVM内存参数详解以及配置调优(一)基本概念:PermGen space:全称是Permanent Generation space。就是说是永久保存的区域,用于存放Class和Meta信息,Class在被Load的时候被放入该区域Heap space:存放Instance。GC(Garbage Collection)应该不会对PermGen space进行清理所以如果你的APP会原创 2012-12-20 21:15:40 · 2665 阅读 · 0 评论 -
JVM内存参数详解以及配置调优(三)-garbage collector
JVM内存参数详解以及配置调优(三)-garbage collector 在JVM启动时,在必要的时候,配置相关的GC参数,帮助进行性能诊断和分析:a: -XX:+UseParallelGC 指 定在 New Generation 使用 parallel collector, 并行收集 , 暂停 app threads, 同时启动多个垃圾回收 thread, 不能和 CMS g原创 2012-12-28 22:03:37 · 3117 阅读 · 0 评论 -
JVM启动参数之 -verbose:gc
Java -verbose:gc 中参数-verbose:gc 表示输出虚拟机中GC的详细情况.使用后输出如下:[Full GC 168K->97K(1984K), 0.0253873 secs]解读如下: 箭头前后的数据168K和97K分别表示垃圾收集GC前后所有存活对象使用的内存容量,说明有168K-97K=71K的对象容量被回收,括号内的数据1984原创 2012-12-18 20:51:30 · 3658 阅读 · 0 评论 -
利用JProfiler诊断应用服务器内存泄漏
在中间件应用服务器的整体调优中,有关于等待队列、执行线程,EJB池以及数据库连接池和Statement Cache方面的调优,这些都属于系统参数方面的调优,本文主要从另外一个角度,也就是从应用的角度来解决中间件应用服务器的内存泄露问题,从这个角度来提高系统的稳定性和性能。项目背景问题描述某个大型项目(Use Case用例超过300个),在项目上线后,其Web应用服务器经常宕机。表现为:转载 2012-12-16 22:15:24 · 1526 阅读 · 0 评论 -
字节码实践 -- 使用 ASM 实现 AOP
ASM 是一个 Java 字节码操控框架。它能被用来动态生成类或者增强既有类的功能。ASM 可以直接产生二进制 class 文件,也可以在类被加载入 Java 虚拟机之前动态改变类行为。Java class 被存储在严格格式定义的 .class 文件里,这些类文件拥有足够的元数据来解析类中的所有元素:类名称、方法、属性以及 Java 字节码(指令)。ASM 从类文件中读入信息后,能...原创 2018-10-21 22:25:10 · 3119 阅读 · 2 评论