上一页 1 2 3 4 5 6 ··· 22 下一页
摘要:在高性能硬件上部署程序,目前主要有两种方式: 1. 通过64位JDK来使用大内存。 2. 通过若干个32位虚拟机建立逻辑集群来利用硬件资源。 32位的虚拟机和64位的虚拟机部署应用有什么区别? 1. 在32位的 Windows 平台中每个进程只能使用 2GB 内存,考虑到堆以外的内存开销,堆一般最多 阅读全文
posted @ 2020-04-20 14:46 JMCui 阅读(93) 评论(0) 推荐(0) 编辑
摘要:栈帧(Stack Frame)是用于支持虚拟机进行方法调用和方法执行的数据结构,它是虚拟机运行时数据区中的虚拟机栈的栈元素。每一个栈帧都包括了局部变量表、操作数栈、动态连接、方法返回地址和一些额外的附加信息。在编译程序代码的时候,栈帧中需要多大的局部变量表、多深的操作数栈都已经完全确定了,并且写入到 阅读全文
posted @ 2020-04-20 14:45 JMCui 阅读(66) 评论(0) 推荐(0) 编辑
摘要:一、类加载机制 虚拟机把描述类的数据从 Class 文件加载到内存,并对数据进行校验、转换解析和初始化,最终形成可以被虚拟机直接使用的 Java 类型,这就是虚拟机的类加载机制。 类的整个生命周期包括了:加载(Loading)、验证(Verification)、准备(Preparation)、解析( 阅读全文
posted @ 2020-04-15 10:11 JMCui 阅读(59) 评论(0) 推荐(0) 编辑
摘要:一、Class 文件结构 JDK 的版本号已经到 14 了,相对于语言、API 以及 Java 技术体系中其他方面的变化,Class 文件结构一直处于比较稳定的状态,Class 文件的主体结构、字节码指令的语义和数量几乎没有出现过变动。 Class 文件是一组以8位字节为基础单位的二进制流,各个数据 阅读全文
posted @ 2020-04-11 15:55 JMCui 阅读(99) 评论(0) 推荐(0) 编辑
摘要:BTrace 是什么? BTrace 是一个动态安全的 Java 追踪工具,它通过向运行中的 Java 程序植入字节码文件,来对运行中的 Java 程序热更新,方便的获取程序运行时的数据信息,并且,保证自己的消耗特别小,大部分情况下不会影响 Java 程序的性能。 BTrace 能干什么? 相信每一 阅读全文
posted @ 2020-04-11 15:54 JMCui 阅读(208) 评论(0) 推荐(1) 编辑
摘要:一、协程 一个进程可以产生许多线程,每个线程有自己的上下文,当我们在使用多线程的时候,如果存在长时间的 I/O 操作,线程会一直处于阻塞状态,这个时候会存在很多线程处于空闲状态,会造成线程资源的浪费。这就是协程适用的场景。 协程,其实就是在一个线程中,有一个总调度器,对于多个任务,同时只有一个任务在 阅读全文
posted @ 2020-03-25 17:12 JMCui 阅读(540) 评论(0) 推荐(0) 编辑
摘要:一、写在前面 Java Agent 这个技术出现在 JDK1.5 之后,对于大多数人来说都比较陌生,但是多多少少又接触过,实际上,我们平时用的很多工具,都是基于 Java Agent 实现的,例如常见的热部署 JRebel,各种线上诊断工具(Btrace, Greys),还有阿里开源的 Arthas 阅读全文
posted @ 2020-03-25 10:23 JMCui 阅读(126) 评论(0) 推荐(0) 编辑
摘要:JCTools 早在96年就有论文提出了无锁队列的概念,再到后来 Disruptor,高性能已得到生产的验证。此处介绍的 Jctools 中的高性能队列,其性能丝毫不输于 Disruptor。 JCTools (Java Concurrency Tools) 提供了一系列非阻塞并发数据结构(标准 J 阅读全文
posted @ 2020-03-20 13:06 JMCui 阅读(292) 评论(0) 推荐(0) 编辑
摘要:一、写在前面 "上一篇文章" 我们介绍了性能监控的一些命令,包括 jmap (生成堆存储快照)和 jstack(生成线程快照),事实上,在没有一些监控工具之前,我们用的最多的也是这两个命令来进行虚拟机性能的监控调优。但是这两个命令都有自己不足的地方: 使用 jmap 命令,从 Heap Dump 开 阅读全文
posted @ 2020-03-19 15:49 JMCui 阅读(149) 评论(0) 推荐(0) 编辑
摘要:一、跳表(SkipList) 对于单链表,即使链表是有序的,如果想要在其中查找某个数据,也只能从头到尾遍历链表,这样效率自然就会很低,跳表就不一样了。跳表是一种可以用来快速查找的数据结构,有点类似于平衡树。它们都可以对元素进行快速的查找。但一个重要的区别是:对平衡树的插入和删除往往很可能导致平衡树进 阅读全文
posted @ 2020-03-17 17:13 JMCui 阅读(109) 评论(0) 推荐(0) 编辑
上一页 1 2 3 4 5 6 ··· 22 下一页