梦想还是要有的,万一实现了呢

0%

主要内容

JVM调优的工具和方法 深入浅出,分如下3节介绍,可以解决实际问题。

本章讨论java线上内存调优

  • 工具介绍
    公欲善其事,必先利其器
    jps, jstat, jmap, jhat, jstack, jinfo, JConsole, VisualVM, Eclipse Memory Analyzer(MAT)

  • CPU调优
    还我CPU

  • Memory调优
    吃我的吐出来

更新历史

阅读全文 »

主要内容

JVM调优的工具和方法 深入浅出,分如下3节介绍,可以解决实际问题。
本章解决java线上CPU调优

  • 工具介绍
    公欲善其事,必先利其器
    jps, jstat, jmap, jhat, jstack, jinfo, JConsole, VisualVM, Eclipse Memory Analyzer(MAT)

  • CPU调优
    还我CPU

  • Memory调优
    吃我的吐出来

更新历史

阅读全文 »

主要内容

JVM调优的工具和方法 深入浅出,分如下3节介绍,可以解决实际问题。

本章首先介绍各种倚天剑和屠龙刀
(致敬 金庸大大)

  • 工具介绍
    公欲善其事,必先利其器
    jps, jstat, jmap, jhat, jstack, jinfo, JConsole, VisualVM, Eclipse Memory Analyzer(MAT)

  • CPU调优
    还我CPU

  • Memory调优
    吃我的吐出来

更新历史

阅读全文 »

主要内容

swagger(springfox) 可帮助开发人员设计,构建,记录和使用RESTful Web服务, 使后台开发人员与移动端开发人员更好的对接.
大多数用户通过Swagger UI工具可很简单识别和使用Swagger。

最大优点: 接口开发人员不用另外写接口文档,代码注释中写上swagger相关的注释就可以自动生成接口文档;
最大缺点: 对源代码侵入比较严重。

本文以 springfox-swagger2 V2.9.2 版本为例说明。

末了,还有个稍重量级竞品 RAP(阿里妈妈出品) , 感兴趣的可以去玩玩。

更新历史
+2018-11-04: 增加swagger注解具体说明

阅读全文 »

主要内容

逃逸分析的基本行为就是分析对象动态作用域:当一个对象在方法中被定义后,它可能被外部方法所引用,称为方法逃逸。甚至还有可能被外部线程访问到,譬如赋值给类变量或可以在其他线程中访问的实例变量,称为线程逃逸。
即时编译器(Just-in-time Compilation,JIT)判断对象是否逃逸的依据,一是对象是否被存入堆中(静态字段或者堆中对象的实例字段),二是对象是否被传入未知代码中。
逃逸分析 在 方法内联后才进行。

如果对象没有逃逸,即时编译器对代码进行性能优化。

阅读全文 »

主要内容

spring boot (Spring Mvc) 提供文件流服务,最简单方式。

更新历史

环境:spring 4.2 以上

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
@ResponseBody
@GetMapping(value = "file/{id}")
public ResponseEntity getFile(@PathVariable Long id) {

UrlResource resource = null;
try {
resource = new UrlResource(Paths.get(${Path of file id}).toUri());
} catch (Exception e) {

}

if(resource == null) {
return ResponseEntity.badRequest().body("无对应资源");
}

return ResponseEntity.status(HttpStatus.PARTIAL_CONTENT) //断点续传
.contentType(MediaTypeFactory
.getMediaType(resource)
.orElse(MediaType.APPLICATION_OCTET_STREAM)) // MediaType
.body(resource);
}