摘要:
转载自:http://hellojava.info/?p=517 作者:阿里毕玄 问题排查除了最重要的解决思路和逻辑推导能力外,工具也是不可缺少的一部分,一个好用的工具可以事半功倍,甚至在某些情况下会因为没有相应的工具而压根就没法继续进行下去,这篇文章就来讲讲在排查Java问题时通常要用到的一些工具(ps:这种文章值得收藏,看一遍其实很容易忘)。 日志相关工具 查问题的时候会非常依赖日志,因此... 阅读全文
摘要:
概述 ConcurrentHashMap是HashMap的线程安全版本,使用了分段加锁的方案,在高并发时有比较好的性能。 本文分析JDK1.7中ConcurrentHashMap的实现。 正文 ConcurrentHashMap概述 HashMap不是线程安全的,要实现线程安全除非加锁,但这样性能很 阅读全文
摘要:
概述 HashMap是Java里基本的存储Key、Value的一个数据类型,了解它的内部实现,可以帮我们编写出更高效的Java代码。 本文主要分析JDK1.7中HashMap实现,JDK1.8中的HashMap已经和这个不一样了,后面会再总结。 正文 HashMap概述 HashMap根据键的has 阅读全文
摘要:
吞吐量是指,应用程序的TPS: 每秒多少次事务,QPS: 每秒多少次查询等性能指标。 吞吐量调优就是减少垃圾收集器消耗的CPU周期数,从而将更多的CPU周期用于执行应用程序。 CMS吞吐调优 CMS包括Minor GC所带来的开销应该小于10%,如果垃圾收集的开销在3%或更少,说明通过调优吞吐量,提 阅读全文
摘要:
延迟指服务器处理一个请求所花费的时间,单位一般是ms、s。 本文主要讲降低延迟可以做的服务器端JVM优化。 JVM延迟优化 新生代 新生代大小决定了应用平均延迟 如果平均Minor GC持续时间大于应用程序平均延迟性要求,可以适当减小新生代空间大小; 如果Minor GC频率大于应用程序平均延迟性要 阅读全文
摘要:
新生代、老年代、永久代的概念不多说,这三个空间中任何一个不能满足内存分配请求时,就会发生垃圾收集。 新生代不满足内存分配请求时,发生Minor GC,老年代、永久代不满足内存分配请求时,发生Full GC,Minor GC比Full GC持续的时间要短很多。 所以内存空间设置的不合理就会频繁引起垃圾 阅读全文
摘要:
概述:JVM性能调优没有一个非常固定的设置,比如堆大小设置多少,老年代设置多少。而是要根据实际的应用程序的系统需求,实际的活跃内存等确定。正文: JVM调优工作流程 整个调优过程是不断重复的一个迭代,后面的步骤有可能影响前面的配置,可能需要重新调优。 应用程序的系统需求 确定应用程序的系统需求是性能 阅读全文
摘要:
一:CPU 1. 用户态CPU是指执行应用程序代码的时间占总CPU时间的百分比。 系统态CPU是指应用执行操作系统调用的时间占总CPU时间的百分比。系统态CPU高意味着共享资源有竞争或者I/O设备之间有大量的交互。 提高应用性能和扩展性的一个目标就是尽可能降低系统态CPU使用率。 2. CPU运行队 阅读全文
摘要:
Powershell 批量替换文件 ##作者:Xiongpq ##时间:2015-06-10 18:50 ##版本:2.0 ##源文件目录 ##源文件目录的所有文件都会覆盖目标目录的同名文件,源文件目录可以在目标目录内,不会循环覆盖 $source = 'E:\Test_Target\Test_Source\' ##目标目录,支持多个目录 $target = 'E:\Test_Targe... 阅读全文
摘要:
获取计算机硬盘序列号用途很多,在网上找到了一个C++的源代码DriveInfoEx(点这里查看)。非常好的一个DLL,.NET项目可以直接引用,而且源代码里有示例。
但这个DLL在Win7非管理员权限下,无法获取硬盘序列号,所以我就完善了一下这个DLL,让其支持Win7 非管理员。 阅读全文