## 一、前言- 开发Java项目过程中,难免会碰到一些 性能 问题,这时候就需要一些工具,帮忙排查- 本文主要介绍 JDK自带的上古神器 jstat、jmap,用于分析内存问题,另简单介绍 MAT、gceasy、HeapDump 等- 以 openjdk 11.0.13、G1 垃圾收集器、Linux系统 为例## 二、GC分析:jstat### 1. [jstat 简介](https://docs.oracle.com/en/java/javase/11/tools/jstat.html)- jstat 全称 “Java Virtual Machine statistics monitoring t...
## 0. 阅读完本文你将会学会- 写出更优雅高效的Java代码## 1. 前言周六逛B乎的时候正好刷到这样一个问题 **"Java开发手册(黄山版)怎么样?"**,我仔细一看这不是孤尽老师的著作吗?居然已经更新到了黄山版。上次... 如果不允许外部直接通过 new 来创建对象,那么构造方法必须是 private。- 工具类不允许有 public 或 default 构造方法。- 类非 static 成员变量并且与子类共享,必须是 protected。 - 类非 static 成员变量并且...
分布式对象框架的健壮性和稳定性都会收到影响。因此大数据框架都开始自己管理JVM内存了,像Spark、Flink、Hbase,为了获取C一样的性能以及避免OOM的发生。### Flink内存管理因为Java对象及jvm内存管理存在的问题,flink针对这些问题基于jvm进行了优化, Flink内存管理主要会涉及内存管理、定制的序列化工具、缓存友好的数据结构和算法、堆外内存、JIT编译优化。Flink并不是将大量对象存在堆上,而是将对象序列化到一个预分配的内存...
因为它是完成Java虚拟机运行的基础。在分析之前,我们先来了解一些基本概念,它们可以帮助我们更好地理解JVM类加载机制的原理和过程:- 类加载器:Java虚拟机大多使用双亲委派模型来实现类加载机制,它使用一系列多级联类加载器来完成类加载中的各种验证和转换工作。- 类型描述符:每个类都有一个关联的类型描述符,它用来描述类的字节码信息,包括类的继承关系、域、方法等。- 元空间:元空间是JVM运行时内存中用于存储已加载的类...
桶(Bucket)是 TOS 的全局唯一的命名空间,相当于数据的容器,用来储存对象(Object)数据。本文介绍如何通过 TOS Java SDK 的 createBucket 接口创建一个新的桶。 注意事项存储桶命名规范如下:只能包括小写字母 a~z、数字和短横线(-)。 开头和结尾只能是数字或字母。 长度必须在 3~63 个字符之间。 通过与 TOS 同地域的其他火山引擎产品访问 TOS 时,推荐您使用内网 Endpoint。关于地域和 Endpoint 的更多信息,请参见地域和访问域名。...
桶(Bucket)是 TOS 的全局唯一的命名空间,相当于数据的容器,用来储存对象(Object)数据。TOS针对桶(Bucket)资源的权限控制包括桶授权策略(Bucket Policy)和桶访问控制(Bucket ACL)。本文介绍如何通过 TOS Java SDK 管理桶的授权策略(Policy)。有关桶的访问控制管理请参考读写权限配置。 设置桶策略您可以通过 TOS Java SDK 的 putBucketPolicy 接口设置指定桶的授权策略。 注意 设置桶策略,您的账号必须具备 tos:PutBucketPolicy 权...
桶(Bucket)是 TOS 的全局唯一的命名空间,相当于数据的容器,用来储存对象(Object)数据。TOS 支持设置桶的跨域访问 CORS(Cross-Origin Resource Sharing)规则。当 TOS 收到跨域请求或 OPTIONS 请求时,会读取桶对应的 CORS 规则,进行相应的权限检查并返回相应的 Header,保证跨域传输数据的安全性。本文介绍如何通过 TOS Java SDK 管理桶的跨区域资源共享配置。 设置跨域资源共享规则您可以通过 TOS Java SDK 的 putBucketCORS 接口设...
桶(Bucket)是 TOS 的全局唯一的命名空间,相当于数据的容器,用来储存对象(Object)数据。当请求桶中的对象数据不存在时,TOS 默认返回 404 错误。但如果您设置了桶的回源规则,填写了对象数据的正确地址,TOS 将会通过回源规则从源站获取数据。TOS 支持镜像回源和重定向回源两种方式,可以满足您对于数据热迁移、特定请求的重定向等需求。本文介绍如何通过 TOS Java SDK 管理桶的回源规则。 设置镜像回源规则您可以通过 TOS Java SDK 的...
分布式对象框架的健壮性和稳定性都会收到影响。因此大数据框架都开始自己管理JVM内存了,像Spark、Flink、Hbase,为了获取C一样的性能以及避免OOM的发生。### Flink内存管理因为Java对象及jvm内存管理存在的问题,flink针对这些问题基于jvm进行了优化, Flink内存管理主要会涉及内存管理、定制的序列化工具、缓存友好的数据结构和算法、堆外内存、JIT编译优化。Flink并不是将大量对象存在堆上,而是将对象序列化到一个预分配的内存...
桶(Bucket)是 TOS 的全局唯一的命名空间,相当于数据的容器,用来储存对象(Object)数据。本文介绍如何通过 TOS Java SDK 的 listBuckets 接口列举您账号下所有地域的桶(Bucket)列表。 注意事项列举桶之前,您必须具有 tos:ListBuckets 权限。具体操作,请参见 IAM 策略概述。 此接口会返回当前账号所有地域的桶。 示例代码以下代码展示如何列举当前账号所有地域的桶。 java import com.volcengine.tos.TOSV2;import com.volcengine....
本文介绍 TOS 中较大对象的常见使用场景。 上传大对象:请参见分片上传。 下载大对象:请参见范围下载。 拷贝大对象:请参见分片拷贝。
因为它是完成Java虚拟机运行的基础。在分析之前,我们先来了解一些基本概念,它们可以帮助我们更好地理解JVM类加载机制的原理和过程:- 类加载器:Java虚拟机大多使用双亲委派模型来实现类加载机制,它使用一系列多级联类加载器来完成类加载中的各种验证和转换工作。- 类型描述符:每个类都有一个关联的类型描述符,它用来描述类的字节码信息,包括类的继承关系、域、方法等。- 元空间:元空间是JVM运行时内存中用于存储已加载的类...
桶(Bucket)是 TOS 的全局唯一的命名空间,相当于数据的容器,用来储存对象(Object)数据。TOS针对桶(Bucket)资源的权限控制包括桶授权策略(Bucket Policy)和桶读写权限控制(Bucket ACL)。本文介绍如何通过 TOS Java SDK 管理桶的读写权限(ACL)。有关桶的授权策略管理请参考授权策略配置。 设置桶的访问权限您可以通过 TOS Java SDK 的 putBucketACL 接口设置指定桶的读写权限。 注意 设置桶的读写权限,您的账号必须具备 tos:PutBuck...