【转】JVM性能调优监控工具
JDK本身提供了很多方便的JVM性能调优监控工具,除了集成式的VisualVM和jConsole外,还有jps、jstack、jmap、jhat、jstat、hprof等小巧的工具,本博客希望能起抛砖引玉之用,让大家能开始对JVM性能调优的常用工具有所了解。 A、 jps(Java Virtual Machine Process Status Tool) jps主要用来输出JVM中运行的进程状态信…
JVM 设置
堆栈空间设置 -XX:+PrintGCDetails -Xms: 初始堆大小 -Xmx: 最大堆大小 -Xmn: 新生代大小 NewSize=MaxNewSize -XX:NewSize: 新生代初始堆大小 -XX:MaxNewSize: 新生代最大堆大小 -Xss: 线程栈大小 -XX:PermSize: 永久代(方法区)初始值 -XX:MaxPermSize: 永久代最大值 -XX:NewRa…
线程池 ThreadPoolExecutor
常用线程池 newFixedThredaPool 固定线程数量的线程池,改线程池中的线程数量始终不变。当有一个新任务提交时,若有空闲线程,则立即执行,否则会被暂存到一个任务队列中 newSingleThreadExecutor 只有一个线程的线程池 newCachedThreadPool 可根据实际情况调整线程数量的线程池。若有空闲线程可以复用,则优先使用,否则创建新线程。执行完毕后返回线程池复用…
Timer的缺陷
Timer管理延时任务的缺陷 Timer在执行定时任务时只会创建一个线程,所以如果存在多个任务,且任务时间过长,超过了两个任务的间隔时间,会发生一些缺陷。 Timer当任务抛出异常时的缺陷 如果TimerTask抛出RuntimeException,Timer会停止所有任务的运行。 Timer执行周期任务时依赖系统时间 Timer执行周期任务时依赖系统时间,如果当前系统时间发生变化会出现一些执行上…
java并发包
Java 并发包位于: java.util.concurrent ArrayBlockingQueue 定长阻塞队列 ConcurrentHashMap 高性能线程安全的HashMap,使用分段锁提供高能 ConcurrentLinkedQueue 高性能线程安全LinkedQueue,使用CAS操作代替锁提高性能 CopyOnWriteArrayList 线程安全的ArrayList,写时复制,…
Spring-技术内幕-IoC容器的实现
控制反转(Inversion of Control) 简单容器:BeanFactory 容器的高级形态:ApplicationContext Bean定义:BeanDefinition 定位(Resource) -> 载入、解析(BeanDefinitionReader、BeanDefinitionDocumentReader,创建BeanFactory) -> 注册(通过BeanDe…
[转]Linux常用命令
一 日期和时间 date 查看和设置系统的日期和时间 -u,来查看UTC时间(格林威治时间) date +{936b63963a8c9f2b24063da536a495a32039ff9ed9d82cacc18dd4741407c351}y--{936b63963a8c9f2b24063da536a495a32039ff9ed9d82cacc18dd4741407c351}m--{936b6396…
[转]Java开发常用Linux命令
1. 查找文件 find / -name filename.txt 根据名称查找/目录下的filename.txt文件。 find . -name "*.xml" 递归查找所有的xml文件 find . -name "*.xml" |xargs grep "hello world" 递归查找所有文件内容中包含hello world的xml文件 grep -H 'spring' *.xml 查找所以…