2018年8月3日
摘要: Eclispe启动优化 概述 什么是jvm调优呢?jvm调优就是根据gc日志分析jvm内存分配、回收的情况来调整各区域内存比例或者gc回收的策略;更深一层就是根据dump出来的内存结构和线程栈来分析代码中不合理的地方给予改进。eclipse优化主要涉及的是前者,通过gc日志来分析。本文主要是通过分析 阅读全文
posted @ 2018-08-03 18:06 朝雨忆轻尘 阅读(651) 评论(0) 推荐(0) 编辑
摘要: 工具做为图形化界面来展示更能直观的发现问题,另一方面一些耗费性能的分析(dump文件分析)一般也不会在生产直接分析,往往dump下来的文件达1G左右,人工分析效率较低,因此利用工具来分析jvm相关问题,长长可以到达事半功倍的效果来。 jvm监控分析工具一般分为两类,一种是jdk自带的工具,一种是第三 阅读全文
posted @ 2018-08-03 17:37 朝雨忆轻尘 阅读(2034) 评论(0) 推荐(0) 编辑
摘要: 运用jvm自带的命令可以方便的在生产监控和打印堆栈的日志信息帮忙我们来定位问题!虽然jvm调优成熟的工具已经有很多:jconsole、大名鼎鼎的VisualVM,IBM的Memory Analyzer等等,但是在生产环境出现问题的时候,一方面工具的使用会有所限制,另一方面喜欢装X的我们,总喜欢在出现 阅读全文
posted @ 2018-08-03 17:30 朝雨忆轻尘 阅读(10177) 评论(0) 推荐(1) 编辑
摘要: 1、什么是类的加载 类的加载指的是将类的.class文件中的二进制数据读入到内存中,将其放在运行时数据区的方法区内,然后在堆区创建一个java.lang.Class对象,用来封装类在方法区内的数据结构。类的加载的最终产品是位于堆区中的Class对象,Class对象封装了类在方法区内的数据结构,并且向 阅读全文
posted @ 2018-08-03 16:40 朝雨忆轻尘 阅读(557) 评论(0) 推荐(0) 编辑
  2018年8月2日
摘要: 概述 垃圾收集 Garbage Collection 通常被称为“GC”,它诞生于1960年 MIT 的 Lisp 语言,经过半个多世纪,目前已经十分成熟了。 jvm 中,程序计数器、虚拟机栈、本地方法栈都是随线程而生随线程而灭,栈帧随着方法的进入和退出做入栈和出栈操作,实现了自动的内存清理,因此, 阅读全文
posted @ 2018-08-02 18:47 朝雨忆轻尘 阅读(499) 评论(0) 推荐(0) 编辑
摘要: 所有的Java开发人员可能会遇到这样的困惑?我该为堆内存设置多大空间呢?OutOfMemoryError的异常到底涉及到运行时数据的哪块区域?该怎么解决呢?其实如果你经常解决服务器性能问题,那么这些问题就会变的非常常见,了解JVM内存也是为了服务器出现性能问题的时候可以快速的了解那块的内存区域出现问 阅读全文
posted @ 2018-08-02 18:22 朝雨忆轻尘 阅读(654) 评论(0) 推荐(1) 编辑
  2018年8月1日
摘要: JVM简介 Java虚拟机(JVM)是由Java虚拟机规范定义的,其上运行的是字节码指令集。这种字节码指令集包含一个字节的操作码(opcode),零至多个操作数(oprand),虚拟机规范明确定义了每种字节码指令完成的功能是什么以及需要多少个操作数。Java虚拟机上运行的class文件,这个文件中包 阅读全文
posted @ 2018-08-01 17:55 朝雨忆轻尘 阅读(1723) 评论(0) 推荐(0) 编辑
摘要: JVisualVM 简介 VisualVM 是Netbeans的profile子项目,已在JDK6.0 update 7 中自带,能够监控线程,内存情况,查看方法的CPU时间和内存中的对 象,已被GC的对象,反向查看分配的堆栈(如100个String对象分别由哪几个对象分配出来的)。在JDK_HOM 阅读全文
posted @ 2018-08-01 17:24 朝雨忆轻尘 阅读(54336) 评论(4) 推荐(6) 编辑
摘要: JMC, 即Java任务控制(Java Mission Control)是从Java7(7u40)和 Java8 的商业版本包括一项新的监控和控制特性。 JMC 程序 (JDK_HOME\bin目录下) 会启动一个窗口程序,然后让我们选择对那进程进行监控,JMC打开性能日志后, 主要包括7部分性能报 阅读全文
posted @ 2018-08-01 16:55 朝雨忆轻尘 阅读(1379) 评论(0) 推荐(0) 编辑
摘要: JDK工具一览表 主要用于根据XML schema文件生成对应的Java类。 常用工具 JVisualVM VisualVM 是Netbeans的profile子项目,已在JDK6.0 update 7 中自带,能够监控线程,内存情况,查看方法的CPU时间和内存中的对 象,已被GC的对象,反向查看分 阅读全文
posted @ 2018-08-01 16:36 朝雨忆轻尘 阅读(731) 评论(0) 推荐(0) 编辑
摘要: 处于项目需求,需要能够批量执行SQL脚本文件,需要由前台页面操作触发执行。 查找相关资料,发现 Ant 提供了 SQLExec 组件可以支持SQL文件的执行,测试效果不错。 以下是对 SQLExec 封装后支持批量执行的执行器组件。 作者:朝雨忆轻尘出处:https://www.cnblogs.co 阅读全文
posted @ 2018-08-01 14:31 朝雨忆轻尘 阅读(1960) 评论(0) 推荐(0) 编辑
摘要: 1 注册用户数 注册用户数指软件中已经注册的用户,这些用户是系统的潜在用户,随时都有可能上线。这个指标的意义在于让测试工程师了解系统数据中的数据总量和系统最大可能有多少用户同时在线。 2 在线用户数 在线用户数是指某一时刻已经登录系统的用户数量。在线用户数只是统计了登录系统的用户数量,这些用户不一定 阅读全文
posted @ 2018-08-01 11:26 朝雨忆轻尘 阅读(1772) 评论(0) 推荐(0) 编辑
摘要: 一、准备工作 1、系统基础功能验证 性能测试在什么阶段适合实施?切入点很重要!一般而言,只有在系统基础功能测试验证完成、系统趋于稳定的情况下,才会进行性能测试,否则性能测试是无意义的。 2、测试团队组建 根据该项目的具体情况,组建一个几人的性能测试team,其中DBA是必不可少的,然后需要一至几名系 阅读全文
posted @ 2018-08-01 11:15 朝雨忆轻尘 阅读(3311) 评论(1) 推荐(2) 编辑
  2018年7月30日
摘要: 消息队列是分布式应用间交换信息的重要组件,消息队列可驻留在内存或磁盘上, 队列可以存储消息直到它们被应用程序读走。 通过消息队列,应用程序可以在不知道彼此位置的情况下独立处理消息,或者在处理消息前不需要等待接收此消息。 所以消息队列可以解决应用解耦、异步消息、流量削锋等问题,是实现高性能、高可用、可 阅读全文
posted @ 2018-07-30 17:19 朝雨忆轻尘 阅读(15500) 评论(0) 推荐(0) 编辑
摘要: 消息队列作为分布式系统中重要的组件,可以解决应用耦合,异步消息,流量削锋等系列问题 实现高性能,高可用,可伸缩和最终一致性架构 使用较多的消息队列有ActiveMQ,RabbitMQ,ZeroMQ,Kafka,MetaMQ,RocketMQ 消息队列应用场景 以下介绍消息队列在实际应用中常用的使用场 阅读全文
posted @ 2018-07-30 15:45 朝雨忆轻尘 阅读(551) 评论(0) 推荐(0) 编辑
  2018年7月27日
摘要: 使用swagger作为restful api的doc文档生成 初衷 记得以前写接口,写完后会整理一份API接口文档,而文档的格式如果没有具体要求的话,最终展示的文档则完全决定于开发者的心情。也许多点,也许少点。甚至,接口总是需要适应新需求的,修改了,增加了,这份文档维护起来就很困难了。于是发现了sw 阅读全文
posted @ 2018-07-27 15:50 朝雨忆轻尘 阅读(6277) 评论(1) 推荐(0) 编辑
摘要: 受朋友所托,需要给产品加上License验证功能,进行试用期授权,在试用期过后,产品不再可用。 通过研究调查,可以利用Truelicense开源框架实现,下面分享一下如何利用Truelicense实现授权验证功能。 在此之前先介绍一下License授权和验证的原理: 1、 首先需要生成密钥对,方法有 阅读全文
posted @ 2018-07-27 15:08 朝雨忆轻尘 阅读(9615) 评论(0) 推荐(1) 编辑
摘要: Java领域中,常用的动态代理实现方式有两种,一种是利用JDK反射机制生成代理,另外一种是使用CGLIB代理。 JDK代理必须要提供接口,而CGLIB则不需要,可以直接代理类。下面分别举例说明。 1.JDK动态代理: 2.CGLIB动态代理 需要引入CGLIB相关Jar包 阅读全文
posted @ 2018-07-27 14:01 朝雨忆轻尘 阅读(19367) 评论(0) 推荐(1) 编辑
摘要: 关于Java中的动态代理,我们首先需要了解的是一种常用的设计模式--代理模式,而对于代理,根据创建代理类的时间点,又可以分为静态代理和动态代理。 一、代理模式 代理模式是常用的java设计模式,他的特征是代理类与委托类有同样的接口,代理类主要负责为委托类预处理消息、过滤消息、把消息转发给委托类,以及 阅读全文
posted @ 2018-07-27 11:30 朝雨忆轻尘 阅读(814) 评论(0) 推荐(0) 编辑
  2018年7月26日
摘要: 在很多时候,我们会需要执行一些定时任务 ,Spring团队提供了Spring Task模块对定时任务的调度提供了支持,基于注解式的任务使用也非常方便。 只要跟需要定时执行的方法加上类似 @Scheduled(cron = "0 1 * * * *") 的注解就可以实现方法的定时执行。 cron 是一 阅读全文
posted @ 2018-07-26 17:58 朝雨忆轻尘 阅读(14311) 评论(0) 推荐(1) 编辑
摘要: Java 集合框架 早在 Java 2 中之前,Java 就提供了特设类。比如:Dictionary, Vector, Stack, 和 Properties 这些类用来存储和操作对象组。 虽然这些类都非常有用,但是它们缺少一个核心的,统一的主题。由于这个原因,使用 Vector 类的方式和使用 P 阅读全文
posted @ 2018-07-26 17:04 朝雨忆轻尘 阅读(491) 评论(0) 推荐(0) 编辑
摘要: 1. JNA简单介绍 先说JNI(Java Native Interface)吧,有过不同语言间通信经历的一般都知道,它允许Java代码和其他语言(尤其C/C++)写的代码进行交互,只要遵守调用约定即可。首先看下JNI调用C/C++的过程,注意写程序时自下而上,调用时自上而下。 可 见步骤非常的多, 阅读全文
posted @ 2018-07-26 16:56 朝雨忆轻尘 阅读(1443) 评论(0) 推荐(0) 编辑
  2017年5月18日
摘要: 首先需要搭建好docker环境的linux系统,这个教程多如牛毛,在此不再赘述。 然后编写一个dockerfile来生成一个镜像,dockerfile其实就是一系列命令的集合,有点像windows的批处理文件, 搭建Jenkins构建环境需要安装jdk、maven、tomcat、jenkins,另外 阅读全文
posted @ 2017-05-18 16:21 朝雨忆轻尘 阅读(2790) 评论(0) 推荐(2) 编辑