
Java程序性能优化
pbyang5689
这个作者很懒,什么都没留下…
展开
-
Java设计模式之单例模式
简介单例模式是一种对象创建模式,用于产生一个对象的具体实例,它可以确保系统中一个类只产生一个实例。在Java语言中,这样的行为能够带来两大好处:(1)对于频繁使用的对象,可以省略创建对象所花费的时间。(2)由于new操作的次数减少,因而对系统内存的使用频率也会降低,这将减轻GC压力,缩短GC停顿时间。单例模式的核心在于通过一个接口返回唯一的对象实例。一个简单的单例实现如下:p...原创 2018-08-09 20:33:58 · 132 阅读 · 0 评论 -
Java性能调优JDK命令行工具(三)
jsp命令jstat命令jmap命令jhat命令未完,待续.......原创 2018-08-13 00:35:17 · 509 阅读 · 0 评论 -
Java性能调优Windows工具(二)
任务管理器perfmon性能监控工具未完,待续.....原创 2018-08-13 00:31:49 · 686 阅读 · 2 评论 -
Java性能调优Linux命令行工具(一)
top命令top命令使Linux下常用的性能分析工具,能够实时显示系统中各个进程的资源占用状况。top命令的输出可以分为两个部分:前半部分是系统统计信息,后半部分是进程信息。 在统计信息部分: 第一行是任务队列信息:分别是系统当前时间、系统运行时间、当前登录用户数、系统的平均负载 第二行是...原创 2018-08-12 22:46:03 · 763 阅读 · 0 评论 -
垃圾收集基础
Java语言的一大特点就是可以进行自动垃圾回收处理,而无需开发人员过于关注系统资源(尤其内存资源)的释放情况。自动垃圾收集虽然大大减轻了开发人员的工作量,但同时,它也增加了软件系统的负担。一个不合适的垃圾回收方法和策略会对系统性能造成不良影响。垃圾收集器要处理的基本问题是:哪些对象需要回收? 何时回收这些对象? 如何回收这些对象? 垃圾收集算法与思想 垃圾收集器的类型...原创 2018-08-12 22:01:05 · 188 阅读 · 0 评论 -
JVM内存分配参数
1、设置最大堆内存Java应用程序可以使用的最大堆可以用-Xmx参数指定。最大堆指的是新生代和老年代的大小之和的最大值,它是Java应用程序的堆上限。2、设置最小堆内存使用JVM参数-Xms可以用于设置系统的最小堆空间。也就是JVM启动时,所占据的操作系统内存大小。3、设置新生代参数-Xmn用于设置新生代的大小。设置一个较大的新生代会减少老年代的大小,这个参数对系统性能以及GC...原创 2018-08-12 21:39:58 · 215 阅读 · 0 评论 -
Java虚拟机内存模型
Java虚拟机内存模型是Java程序运行的基础。JVM虚拟机将其内存数据分为程序计数器、虚拟机、本地方法栈、Java堆和方法区等部分。 程序计数器用于存放下一条运行的指令。虚拟机栈和本地方法栈用于存放函数调用堆栈信息。Java堆用于存放Java程序运行时所需的对象等数据。方法区用于存放程序的类元数据信息。 Java虚拟机规范允许Java栈的大小是动态的或者是固定的。在Java虚拟机规范中,定义...原创 2018-08-11 14:56:44 · 129 阅读 · 0 评论 -
Java查看字节码的4种方式
JDK的javap工具Intellij idea快速查看Java类字节码:转载自http://allan.li/intellij-ideakuai-su-cha-kan-javalei-zi-jie-ma/IDEA插件在Intellij idea插件管理里面安装jclasslib bytecode viewer插件。然后打开一个java文件,在底下的面板上View-Show bytec...原创 2018-08-11 03:46:02 · 1818 阅读 · 0 评论 -
如何监控Java垃圾回收机制
如何监控Java垃圾回收机制转载 2018-08-10 01:20:51 · 158 阅读 · 0 评论 -
对象复用------“池”之数据库连接池和线程池
对象池化是目前非常常用的一种系统优化技术。在程序中使用数据库连接池和线程池,可以有效地改善系统在高并发下的性能。数据库连接池目前应用较为广泛的数据库连接池组件有C3PO和Proxool。其中C3PO是伴随着Hibernate一起发布,与Hibernate联系紧密的数据库连接池。若在Hibernate中使用C3PO连接池,只需要将C3PO的jar包复制到开发环境中,并且在hibern...原创 2018-08-10 00:05:46 · 718 阅读 · 0 评论 -
缓冲(Buffer)与缓存(Cache)
缓冲介绍缓冲区是一块特定的内存区域。开辟缓冲区的目的是通过缓解应用程序上下层之间的性能差异,提高系统的性能。在日常生活中,缓冲的一个典型应用是漏斗。缓冲最常用的场景就是提高I/O的速度。为此,JDK内不少I/O组件都提供了缓冲功能。比如,当使用FileWriter时,进行文件写操作的代码如下: public static final int CIRCLE=100000; @Test...原创 2018-08-09 23:35:51 · 5413 阅读 · 0 评论 -
Java设计模式之动态代理
Java设计模式之静态代理模式:https://mp.youkuaiyun.com/postedit/81544020介绍动态代理是指在运行时,动态生成代理类。即,代理类的字节码将在运行时生成并载入当前额ClassLoader.注意:动态代理使用字节码动态生成加载技术,在运行时生成并加载类。动态代理实现使用JDK的动态代理生成代理对象。JDK的动态代理需要实现一个处理方法调用的Handle...原创 2018-08-09 22:20:28 · 144 阅读 · 0 评论 -
Java设计模式之静态代理
应用场景远程调用的网络代理、考虑安全因素的安全代理、延迟加载等。核心思想:如果当前并没有使用这个组件,则不需要真正地初始化它,使用一个代理对象替代它的原有的位置,只要在真正需要使用的时候,才对它进行加载。代理模式的实现和使用主题接口:IDBQuery的实现如下,它只有一个request()方法:public interface IDBQuery { String req...原创 2018-08-09 21:08:51 · 124 阅读 · 0 评论 -
Java性能调优JConsole工具(四)
先占坑,有空再写.....原创 2018-08-13 00:37:48 · 657 阅读 · 1 评论