技术改变世界 阅读塑造人生! - shaogx.com

This string was altered by TechBlog\Plugins\Example.; This is an example to show the potential of an offcanvas layout pattern in Bootstrap. Try some responsive-range viewport sizes to see it in action.

提升你的Java应用性能:改善数据处理

许多应用程序在压力测试阶段或在生产环境中都会遇到性能问题。如果我们看一下性能问题背后的原因,会发现很多是由数据处理不当造成。数据处理在应用面对大数据量时是非常关键的。这里有一些实用的数据处理技巧可以帮助更好地提升Java应用程序性能。减少数据传输在任何Java应用程序中,方法调用要么是为调用方完成某项任务,要么是对输入数据进行处理。这两个目标都需要在调用者和处理方法之间进行数据交换。关于最小化函数传入和输出的数据量有一个经验之谈:数据越小好处越多。比如越小的数据处理就越少,需要清理的对象越少,内存的占用也更少等等。程序设计应当努力减少不同方法、层次和应用程序之间,甚至组织之间的数据传递。通过下面将要讨论的源端数据处理可以达成这个目标。... 全文

java性能处理 java数据处理

Java列表对象的性能分析和测试

        SDK提供了有序集合接口java.util.List的几种实现,其中三种最为人们熟知的是Vector、ArrayList和LinkedList。有关这些List类的性能差别是一个经常被问及的问题。在这篇文章中,我要探讨的就是LinkedList和Vector/ArrayList之间的性能差异。为全面分析这些类之间的性能差异,我们必须知道它们的实现方法。因此,接下来我首先从性能的角度出发,简要介绍这些类的实现特点。一、Vector和ArrayList的实现Vector和ArrayList都带有一个底层的Object[]数组,这个Object[]数组用来保存元素。通过索引访问元素时,只需简单地通过索引访问内部数组的元素:public Object get(int index){ // 首先检查index是否合法...此处不显示这部分代码 returnelementData[index]; }        内部数组可以大于Vector/ArrayList对象拥有元素的数量,两者的差值作为剩余空间,以便实现快速添加新元素。有了剩余空间,添加元素变得非常简单,只需把新的元素保存到内部数组中的一个空余的位置,然后为新的空余位置增加索引值:... 全文

性能测试协商 性能测试 Java SDK Vector

对java提供的两个Map进行性能测试

对java 提供的两个Map 进行了性能测试发现效果还可以10万个key的Map 查找 起来也不是很慢,大概50--60毫秒还打算自己手工做些性能优化,将不同前缀的KEY分开到几个小MAP里发现性能没有改观,纳闷中。 分开到几个小MAP里,然后小的里面还可以再分,分分分,形成一个按字母检索树突然想起,Java Pro 上有篇文章里说过Map系列的内置 性能优化方式,好象就是和我说的这种思想是一致的 查找资料一看(http://www.fawcette.com/china/XmlFile.aspx?ID=8&page=1),过真如此,哈哈,不过上次看了印象不深刻,这次自己想出来了,印象当真深刻的很,同时也证明了英雄所见略同... 全文

性能测试协商 性能测试 java Map

Java中反射性能测试

Java反射效率到底如何,花了点时间,做了一个简单的测试.供大家参考.测试背景: 1. 测试简单Bean(int,Integer,String)的set方法2. loop 1亿次3. 测试代码尽可能避免对象的创建,复发方法的调用,仅仅测试set方法的耗时测试结果: 场景 本机测试结果(XP,双核,2G)服务器测试结果(Linux,XEN虚拟机,8核,5.5G)方法直接调用235MS190MSJDK Method调用29188MS4633MSJDK Method调用(稍作优化)5672MS4262MSCglib FastMethod调用5390MS2787MS... 全文

Java 性能 反射

Java编程中“为了性能”需做的26件事

最近的机器内存又爆满了,除了新增机器内存外,还应该好好review一下我们的代码,有很多代码编写过于随意化,这些不好的习惯或对程序语言的不了解是应该好好打压打压了。下面是参考网络资源总结的一些在Java编程中尽可能要做到的一些地方。1.尽量在合适的场合使用单例使用单例可以减轻加载的负担,缩短加载的时间,提高加载的效率,但并不是所有地方都适用于单例,简单来说,单例主要适用于以下三个方面:... 全文

java 提高性能 代码

如何进行Java EE性能测试与调优

性能测试的目标性能测试不同于功能测试,不是对与错的检验,而是快与慢的衡量。在进行真正的性能测试之前要先搞清楚目标:1. 在确定的硬件条件下,可以支持的并发数越大越好,响应时间越快越好。具体需要达到的并发数是多大,要求的响应时间是多快,由产品经理来提出。2. 在确定的硬件条件下,测试得到最大并发数和相应的响应时间之后。如果增加硬件投入,可以得到怎样的性能提升回报? (系统扩展性和伸缩性测试,Scalability)这里的硬件条件包括:cpu,memery,I/O,network bandwidth。性能测试中的基准测试 Benchmarking... 全文

Java Java EE

优化Java堆大小的5个技巧

本文作者Pierre是一名有10多年经验的高级系统架构师,他的主要专业领域是Java EE、中间件和JVM技术。根据他多年的工作实践经验,他发现许多性能问题都是由Java堆容量不足和调优引起的。下面他将和大家分享非常实用的5个Java堆优化技巧。1.JVM:对难以理解的东西产生恐惧感... 全文

GC Java性能调优 JVM Heap Java 编程语言

专访孔德芳:如何才能提高Java Web性能?

孔德芳认为,设计模式不会随着各种语言或开发框架的没落而没落,它犹如老酒,愈久愈醇香... 全文

社区之星 孔德芳 访谈 Java Java Web Web应用 框架 开源 设计模式 云计算

java

查询CPU暂用过高的用法: 1,使用jps查找出java进程的pid,如3707 2,使用top -p 3707观察进程情况,然后Shift+h,显示该进程的所有线程。 3,找出CPU消耗较多的线程id,如3720,将3720转换为16进制0x7d0,注意是小写哦 4,使用jstack 3707 | grep -A 10 0x7d0 来查询出具体的线程状态。 内容摘自:http://wolfcame.iteye.com/blog/1770470... 全文

JAVA 故障 性能

Java中通过缓冲区提高I/O性能

我们知道Java中一般的输入输出流类都是用单字节的读取方法来进行I/O操作的,也就是说每次只读写一个字节的数据,这种方法显然繁琐低效。如果从设备读取10M的文件,每次读取一个字节,完成操作将需要做10M/次I/O操作,I/O操作又是一件相当耗时的事情,无疑在很大程度上降低了系统的性能。     Java中专门提供提高I/O效率的缓冲类,这好比在数据读写时提供一个临时缓冲区,每次读取一个缓冲区大小的数据,将这数据库一次性写入目标设备。下图中分别为两种读取方式。  ... 全文

java IO

你不知道的Java秘密(1)

51CTO给各位读者讲过《Java的8大技术优势》,很多开发者觉得自己懂Java编程,事实是大多数开发人员都只领会到了Java平台的皮毛,所学也只够应付工作。作者将深度挖掘Java平台的核心功能,揭示一些鲜为人知的事实,帮助您解决最棘手的编程困难。... 全文

Java 性能监控

一个Web报表项目的性能分析和优化实践(七):性能监测工具JavaMelody

简介JavaMelody 能够监测Java或Java EE应用程序服务器,并以图表的方式显示:Java内存和Java CPU使用情况,用户Session数量,JDBC连接数,和http请求、sql请求、jsp页面与业务接口方法(EJB3、Spring、 Guice)的执行数量,平均执行时间,错误百分比等。图表可以按天,周,月,年或自定义时间段查看。... 全文

性能优化 JavaMelody 开源工具 Java Web开发

基于PhoneGap与Java开发的Android应用的性能对比(1)

此次的调研的重点是针对一个Android应用的基础需求,用phonegap与Java实现的应用在性能及开发成本等方面的对比。开发一个应用的最基本需求应该是浏览性需求,而在Android开发中ListView比较常用的控件,广泛被用于数据列表的展现上,而且也比较灵活。所以本次选择用phonegap和Java各自实现一个ListView的内容展现功能的应用;同时引入另外一个常用组件GridView来实现图片浏览的功能应用。Delicious书签订阅应用一、应用功能描述Delicious书签订阅应用。进入应用首先展现订阅的书签源列表,点击书签源项,进入书签源书签列表页,共展现最新的20条书签。数据来源由Delicious提供的JSON格式的数据。参考地址(http://www.delicious.com/help/json二、应用界面截图1、PhoneGap delicious bookmark2、Java delicious bookmark三、功能测试对比【测试机器为 Google Nexus One G5】... 全文

PhoneGap Java Android

Nginx+Resin高性能JAVA平台搭建

   现在流行的Java EE容器有很多:Tomcat、Resin、JBoss、Glassfish等,我们常用的主要是前三种,那这个java容器性能方面到底谁更稳定,并发能力更强呢?那当属resin了,resin官方发布了最新版本4.0.33版,号称并发超越apache,不仅支持jsp语言,还能支持php。... 全文

resin高可用 resin配置 十全十美 java容器resin resin负载均衡

Java并发编程基础构建模块(05)——同步工具类

        前面介绍了同步容器类,阻塞队列等,这里说说同步工具类,同步工具类主要是根据自身的状态来协调线程的控制流,阻塞队列就可以作为同步工具类,其他的同步工具类还包括:信号量(Semaphore)、闭锁(Latch)、栅栏(Barrier)等,也可以自己创建工具。        同步工具类大体原理有3点:        1、 用一些属性来表示某个状态,这些状态决定执行同步工具类的线程是等待,还是继续执行;        2、 提供了一些操作这些状态的方法;... 全文

并发 Java 多线程 性能 concurrent

爪哇(Java)自定义的二个字符串高效处理方法,在静寂一个半月之后

以下是测试程序运行结果: source = a b c d e f g h i j k l m n o p q r s t u v w x y z 字符串中删除字符的方法。 系统函数计算 300000 次用时 1844ms 自定义方法计算 300000 次用时 125ms 生成 abcdefghijklmnopqrstuvwxyz 。 ---------- ---------- ---------- ---------- 字符串按字符分割的方法。 系统函数计算 300000 次用时 1609ms 自定义方法计算 300000 次用时 281ms 生成 [Ljava.lang.String;@1010058: [a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z] 。 ---------- ---------- ---------- ---------- 能够数倍超越爪哇(Java)类库(Java5.0和Java6.0)中相关方法的性能,究其原因,是因为类库为通用性,提供的相关方法,都采取了正则表达式参数。虽然编译过的正则表达式很高效,但毕竟无法和字符相等这种单拍操作相提并论。 下面把程序发出来,供大家指出错误、讨论以及参考。 首先是删除字符串中某字符的方法。/**  * <b>字符串删除其中某字符</b><br/>  * 本方法用来移除指定字符串中的指定字符。  * 在 Java 6.0 以内,删除字符串中的指定字符,需要通过  * {@link String#replace(CharSequence, CharSequence) replace} 方法,将指定单  * 字符的字符串,替换成空字符串来实现。而 <code>replace</code> 方法为了追求通用,  * 使用了正则表达式参数。即便是编译过的正则表达式,其性能也无法与简单的字符相等  * 判断相提并论。<br/>  * 本方法不涉及正则表达式,通过遍历原字符串对应的字符数组来寻找符合待删除字符的  * 字符,然后通过 {@link StringBuilder} 来追加其余字符。这是一个简单但高效的方法。  * <br/>  * 本方法编写之初,曾试图通过 <code>StringBuilder</code> 的功能来直接删除字符串  * 中待删除字符。后经 www.iteye.com 网站用户 shenyuc629 提示,并经过考证,发现  * {@link StringBuilder#deleteCharAt(int) deleteCharAt} 方法并不高效,应该是  * 因为其内部每次删除都进行了数组迁移。遂改为追加方式,效率提高了 2 倍多。<br/>>>  * 本方法使用示例如下:  * <pre>  * String source = "a b c d e f g h i j k l m n o p q r s t u v w x y z";  * String removed = StringTool.removeChar(source, ' ');</pre>  * 此示例中,{@link String} source 为原字符串。String removed 为删除空格后的  * 结果。  * @see     String#replace(CharSequence, CharSequence)  * @see     StringBuilder#append(char)  * @param   source  待被处理的字符串,即本方法的“原字符串”  * @param   target  需要从原字符串中移除的字符  * @return      从指定原字符串中移除指定字符后所得的结果字符串  * @exception   NullPointerException    当传入参数 source 为空时  */ static public String removeChar(String source, char target) {     StringBuilder builder = new StringBuilder();     for (char c: source.toCharArray())         if (c != target) builder.append(c);     return builder.toString(); }  接下来,是字符串分割的方法。... 全文

Java 性能 字符串 String 高效

影响Java EE性能的十大问题(1)

本文作者是一名有10多年经验的高级系统架构师,他的主要专业领域是Java EE、中间件和JVM技术。他在性能优化和提升方面也有很深刻的见解,下面他将和大家分享一下常见的10个影响Java EE性能问题。1.缺乏正确的容量规划... 全文

JavaEE x性能

1 2