
java
e5945
这个作者很懒,什么都没留下…
展开
-
Btrace在性能测试中的使用
在测试环境安装btrace,可以用于排查接口调用的时间,分析测试点的瓶颈。以下简单介绍安装和使用。1. 安装:btrace是一个开源代码软件,下载安装的地址在:http://kenai.com/projects/btrace/downloads/directory/releases/release-1.2.1,下载得到tar.gz包,在应用服务器上使用sudo–u admin –原创 2012-03-28 21:43:50 · 2060 阅读 · 0 评论 -
【ASM系列2】字节码介绍
这一篇首先介绍下面这些类型的字节码指令: 装载和存储系列:从局部变量装载到操作数栈的xload系列指令、从常量池中装载数据到操作数栈的xconst和push系列、将操作数栈中的数据保存到局部变量的xstore系列指令。 字段访问系列:getfield、putfield、getstatic、putstatic等指令。 方原创 2012-08-23 19:59:14 · 2200 阅读 · 0 评论 -
《java performance》读书笔记之JIT
这一部分的内容其实主要是看了毕玄大师的《分布式java应用基础与实践》得到的总结。如下。 编译是指从一些高级语言生成机器级别的指令的过程。传统的编译器一般是从C或者C++这样的源程序出发,把每个源代码文件编译成一个个对象文件,然后把这些文件连接到一个库或者可执行文件中,使得用户可以执行这些库或者可执行文件。因为编译并不是频繁的任务,所以编译时间在静态编译器上并不是大的约束。j原创 2012-08-26 22:33:19 · 1886 阅读 · 0 评论 -
cpu伪共享问题
CPU内部也会有自己的缓存,内部的缓存单位是行,叫做缓存行。在多核环境下会出现CPU之间的内存同步问题(比如一个核加载了一份缓存,另外一个核也要用到同一份数据),如果每个核每次需要时都往内存中存取,这会带来比较大的性能损耗,这个问题一般是通过MESI协议来解决的。 MESI协议中包含M、E、S、I四个状态,分别的意思是:M(修改, Modified): 本原创 2012-09-23 21:53:48 · 3970 阅读 · 2 评论 -
《java performance》读书笔记之jvm runtime
vm runtime的主要功能:命令行参数解析、虚拟机生命周期维护、类加载、字节码解释、异常处理、同步、线程管理、jni、fatal error处理、c heap管理。命令行解析:NA虚拟机生命周期:NA类加载:NA字节码解析(interpreter):The template table generated in memory can be viewe原创 2012-07-25 09:42:34 · 1619 阅读 · 0 评论 -
contiperf施压机制初步探索总结
contiperf是一个轻量级性能测试框架,它让用户在基于junit4的接口测试用例上执行性能测试,官网链接如下:http://databene.org/contiperf.html。下面对ContiPerf的实现做一个概要的分析: 1.contiperf扩展自junit,所以可以使用junit的eclipse插件在eclipse中运行; 2.junit4以上,扩展junit通原创 2013-01-06 11:43:41 · 2131 阅读 · 0 评论 -
《java performance》读书笔记之java应用调优tips
首先 java performance把应用中代码引起的性能问题分为以下几类: 1.低效的算法、数据结构 2.锁竞争 3.低效的代码 然后文章分门别类得列举了一些java应用中典型的性能问题和调优tip,主要讲解了以下几类问题的原因分析和排查解决思路: 一.系统态cpu资源消耗过高原创 2012-12-23 01:19:44 · 1739 阅读 · 0 评论 -
jar包冲突问题排查总结
在测试脚本编写和应用部署时,经常遇到的一个问题是:java.lang.NoSuchMethodError。这个问题产生的根本原因是运行时应用加载的jar包版本不是应用代码真正需要的版本。要解决这个问题,就要让应用加载真正“HasSuchMethod"的类所在的jar包。解决这个问题,我把它归纳为以下几步:验证加载内容、查找包含该类的jar包、查找应用适用的jar版本、查看出错应用加载的jar包位置原创 2013-02-02 19:08:24 · 24214 阅读 · 7 评论 -
JMS(java消息服务)学习笔记
JMS(java消息服务)是java平台关于面向消息中间件的api接口,用于在应用程序和分布式系统中发送消息,进行异步通信。JMS提供了一套类似JDBC的技术规范,服务的实现由具体的实现提供商提供。 使用JMS,可以解决诸多的体系结构性问题,比如异构系统集成通信,缓解系统瓶颈,提高系统的伸缩性(异步、非点对点的模式使得处理消息的应用可以水平扩展),增强系统用户体验,使得系统模块化和组件化原创 2013-02-20 00:11:47 · 11866 阅读 · 2 评论 -
《java performance》翻译 第七章jvm调优:基础概念
现代jvm是一个能适应各种不同复杂应用的软件,大多数的应用在jvm的默认配置上能够运行得很好、满足需求,但还是会有一些应用在需要在默认配置上进行适当的jvm参数调优才能满足应用的性能需求。现代的jvm中有大量的参数可以设置进而改变jvm的行为,不幸得是,适合一个应用上的最佳配置未必在另一个应用上能够起作用。所以,知道怎么调优jvm参数就变得很重要。 方法论 调优的第一步原创 2013-03-06 12:08:57 · 1901 阅读 · 0 评论 -
java 并发编程读书笔记
1.同步容器,同步容器包括Vector和HashTable,是早期jdk的一部分。另一部分是同步包装类,以Collections.synchronizedxxx的工厂方法创建。2.同步容器虽然是线程安全的,但是对于复合操作,有时你可能需要加上额外的客户端加锁进行保护,即对于使用这些容器的客户端代码,如果存在复合操作,还是可能存在风险。3.例如check-and-act操作、循环中的元素操作原创 2014-05-05 22:08:04 · 1343 阅读 · 0 评论 -
【ASM系列1】visitor模式
最近一直在使用ASM做一些代码监控和AOP拦截的事情,接下来准备对做的这些事情做下记录,以备后用,还是那句话:好记性不入烂键盘。 存在这样的问题:在一个集合当中,存在着多种不同的类型,但是需求需要对这个集合当中的所有元素遍历之后进行类似逻辑的一个操作。退一步思考,如果集合中都是同类元素,这会很简单,只要在这类元素的对象上执行固定的操作就可以。而现在的情况是多种不同类型的对象,原创 2012-08-18 17:26:57 · 2315 阅读 · 0 评论 -
eclipse中show whitespace characters按钮编辑器中显示导致恶心的乱码
已经第二次了,java类中并没有中文,当时打开后依然存在恶心的乱码:如图:上次遇到过,解决了之后就忘记了,这次记录一下。在文件打开的状态下,在eclipse上能看到菜单栏中有如下图的按钮:去掉选中就解决问题了。好记性不入烂笔头啊,何况现在真的不是好记性了,悲诶啊。原创 2012-08-13 14:04:06 · 5000 阅读 · 0 评论 -
《java performance》读书笔记之 jvm 垃圾回收
jvm 的垃圾收集器基于以下两个在java应用中成立的假设:1是大部分分配的对象几乎马上就没有被引用到了,2是从老对象到新对象的引用变得越来越少(老对象很少依赖新创建的对象)。基于这两点,hotspot vm设计了minor gc和fgc两类分别正对上述两种情况的垃圾回收方式。HotSpot 虚拟机把堆内存划分为几个物理块:年轻代、年老代、永久代。 年轻代:原创 2012-08-12 08:44:07 · 1440 阅读 · 0 评论 -
junit学习总结--暂贴顺序图
原创 2012-04-06 09:27:25 · 1062 阅读 · 0 评论 -
what-to-do-when-nexus-returns-401
Sonatype helps open source projects by providing free Maven repository hosting and Maven central repository sync. There are hundreds of projects using this great service. As a result, I’ve received转载 2012-04-25 10:20:22 · 684 阅读 · 0 评论 -
一些linux命令和脚本(持续完善)
1. 查询文件中符合字符串的数量:grep -c 'dfd' dd.log2. 解压tar.gz包tar zvxf xxx.tar.gz3. FTP使用:1)ftp命令进入ftp控制台2)open ip打开连接,然后输用户名和密码、3)put sourceFile targetFile上传文件4)gettargetFile sourceFile下载文件4.原创 2012-03-28 21:46:24 · 730 阅读 · 0 评论 -
HashMap高并发死循环相关文章
http://code.alibabatech.com/blog/dev_related_969/hashmap-result-in-improper-use-cpu-100-of-the-problem-investigated.htmlhttp://www.iteye.com/topic/754887http://aaba.me/blog/2010/03/hashmap-get-b转载 2012-04-18 21:12:59 · 768 阅读 · 0 评论 -
应用初始化时mysql hold在SocketInputStream.socketRead0(Native Method)问题
今天启动一个应用,应用初始化时需要去读一个数据库表,把里面的内容加载到本地缓存中。但是启动之后一直自检失败,应用不能正常提供服务。jstack来dump了线程之后,发现jboss的主线程hold在SocketInputStream.socketRead0(Native Method)上。多次dump也是一样的情况。查了很久,发现是一个乌龙问题,原因是初始化需要加载的这个数据量太大,mysql一直在原创 2012-05-03 16:59:42 · 6561 阅读 · 1 评论 -
使用MAT时的Shallow Size和 Retained Size的区别
所有包含Heap Profling功能的工具(MAT, Yourkit, JProfiler, TPTP等)都会使用到两个名词,一个是Shallow Size,另一个是 Retained Size.这是两个在平时不太常见的名词,本文会对这两个名词做一个详细的解释。Shallow Size对象自身占用的内存大小,不包括它引用的对象。针对非数组类型的对象,它的大小就是对象与它所有的转载 2012-07-02 13:18:21 · 5685 阅读 · 0 评论 -
字符集编码以及java乱码问题学习总结
字符集和字符编码的概念:1.字符集:是一个系统支持的所有抽象字符的集合。字符是各种文字和符号的总称,包括各国家文字、标点符号、图形符号、数字等。2.字符编码方式:是把字符集中的字符编码为指定集合中某一对象(例如:比特模式、自然数序列、8位元组或者电脉冲),以便文本在计算机中存储和通过通信网络的传递。对于ascii和gb2312等字符集,他们在传输和计算机表示时的字节码不用编码,直接用字符对原创 2011-01-25 10:38:00 · 2114 阅读 · 0 评论 -
用maven assembly插件打jar包实现依赖包归档
如果你的项目使用maven构建的话,当项目要上线,部署到服务器上去的时候或许会碰见这样的问题。问题就是,服务器上没有maven的环境,也就是说,项目所依赖到的那些仓库(repository)中的jar包你需要单独提取出来上传到服务器中去。我知道pom类型如果是war的话,在使用mvn package 的命令就能自动将项目依赖的jar包打到web-inf 下的lib文件夹中。但是,如果pom类型转载 2012-07-23 22:46:53 · 28526 阅读 · 2 评论 -
SPI和API
先描述下API(Application Programming Interface )。在java中,我们使用java提供的很多类、类的方法、数据结构来编写我们的应用程序,最终完成我们需求的程序功能,这里的类、方法、数据结构即是jdk提供的api。api的意义,其实就是这些提供给你完成某项功能的类、接口或者方法。 而SPI(Service Provider Interface)原创 2014-04-18 21:19:34 · 15952 阅读 · 2 评论