Fork me on GitHub
上一页 1 ··· 27 28 29 30 31 32 33 34 35 ··· 49 下一页
摘要: 简介 我们知道JVM运行时数据区域专门有一个叫做Stack Area的区域,专门用来负责线程的执行调用。那么JVM中的栈到底是怎么工作的呢?快来一起看看吧。 JVM中的栈 小师妹:F师兄,JVM为每个线程的运行都分配了一个栈,这个栈到底是怎么工作的呢? 小师妹,我们先看下JVM的整体运行架构图: 我 阅读全文
posted @ 2020-07-10 08:37 flydean 阅读(1511) 评论(3) 推荐(2) 编辑
摘要: 简介 分代垃圾回收器在进行minor GC的时候会发生什么操作呢?有没有什么提高效率的手段呢?今天我们和小师妹一起来了解一下垃圾回收中的Dirty cards和PLAB 分代收集器中的空间划分 小师妹:F师兄,能再讲讲分代垃圾收集器中的空间划分吗? 分代垃圾回收器中的Eden,Old和Survivo 阅读全文
posted @ 2020-07-09 09:04 flydean 阅读(909) 评论(1) 推荐(0) 编辑
摘要: 简介 java程序员都听说过GC,大家也都知道GC的目的是扫描堆空间,然后将那些标记为删除的对象从堆空间释放,以提升可用的堆空间。今天我们会来探讨一下隐藏在GC背后的一个小秘密Safepoints。 GC的垃圾回收器 小师妹:F师兄,GC的垃圾回收器的种类为什么会有这么多呀?使用起来不是很麻烦。并且 阅读全文
posted @ 2020-07-08 09:17 flydean 阅读(939) 评论(1) 推荐(0) 编辑
摘要: 简介 读万卷书不如行万里路,讲了这么多assembly和JVM的原理与优化,今天我们来点不一样的实战。探索一下怎么使用assembly来理解我们之前不能理解的问题。 一个奇怪的现象 小师妹:F师兄,之前你讲了那么多JVM中JIT在编译中的性能优化,讲真的,在工作中我们真的需要知道这些东西吗?知道这些 阅读全文
posted @ 2020-07-07 09:08 flydean 阅读(849) 评论(2) 推荐(0) 编辑
摘要: 简介 比特币网络是中本聪作为一个实验性的网络提出来并运行的。没想到的是这一个实验性质的网络,居然成了现在虚拟货币世界的龙头老大。这个结局估计是中本聪本人都没有想到过的。 既然是一个实验性的网络,那么比特币网络中又隐藏着哪些痛点呢?快来看看吧。 攻击比特币网络 比特币网络是基于P2P架构的。在整个比特 阅读全文
posted @ 2020-07-06 08:59 flydean 阅读(701) 评论(1) 推荐(0) 编辑
摘要: 简介 老是使用命令行工具在现代化社会好像已经跟不上节奏了,尤其是在做JIT分析时,使用LogCompilation输出的日志实在是太大了,让人望而生畏。有没有什么更加简便的方法来分析JIT日志呢?快来和小师妹一起来学习JITWatch吧。 什么是JIT 小师妹,F师兄,JIT就是Just In Ti 阅读全文
posted @ 2020-07-05 17:17 flydean 阅读(1158) 评论(2) 推荐(0) 编辑
摘要: 简介 之前在讲JIT的时候,有提到在编译过程中的两种优化循环展开和粗化锁,今天我们和小师妹一起从Assembly的角度来验证一下这两种编译优化方法,快来看看吧。 循环展开和粗化锁 小师妹:F师兄,上次你讲到在JIT编译的过程中会进行一些编译上面的优化,其中就有循环展开和粗化锁。我对这两种优化方式很感 阅读全文
posted @ 2020-07-04 09:01 flydean 阅读(889) 评论(0) 推荐(1) 编辑
摘要: 简介 上篇文章和小师妹一起介绍了PrintAssembly和PrintAssembly在命令行的使用,今天本文将会更进一步讲解如何在JDK8和JDK14中分别使用PrintAssembly,并在实际的例子中对其进行进一步的深入理解。 JDK8和JDK14中的PrintAssembly 小师妹:F师兄 阅读全文
posted @ 2020-07-03 09:07 flydean 阅读(1091) 评论(2) 推荐(0) 编辑
摘要: 简介 在比特币的P2P网络中是怎么达成共识的呢?达成共识需要做哪些交易的校验呢?交易和区块是怎么传播到整个区块链网络的呢?看完这篇文章你就明白了。 比特币中的共识 之前我在讲分布式系统的时候有讲过分布式系统的几个共识算法,包括raft,Paxos和拜占庭容错算法。 比特币的共识和之前讲的都不同,它使 阅读全文
posted @ 2020-07-02 09:15 flydean 阅读(1061) 评论(1) 推荐(0) 编辑
摘要: 简介 逃逸分析我们在JDK14中JVM的性能优化一文中已经讲过了,逃逸分析的结果就是JVM会在栈上分配对象,从而提升效率。如果我们在多线程的环境中,如何提升内存的分配效率呢?快来跟小师妹一起学习TLAB技术吧。 逃逸分析和栈上分配 小师妹:F师兄,从前大家都说对象是在堆中分配的,然后我就信了。上次你 阅读全文
posted @ 2020-07-01 09:06 flydean 阅读(871) 评论(1) 推荐(0) 编辑
摘要: 简介 今天我们讲讲JDK9中的JVM GC调优参数,JDK9中JVM的参数总共有2142个,其中正式的参数有659个。好像比JDK8中的参数要少一点。 为了方便大家的参考,特意将JDK9中的GC参数总结成了一张PDF,这个PDF比之前总结的JDK8的PDF在排版,颜色和内容准确性上面又有了非常大的提 阅读全文
posted @ 2020-06-30 06:54 flydean 阅读(309) 评论(1) 推荐(0) 编辑
摘要: 简介 想不想了解JVM最最底层的运行机制?想不想从本质上理解java代码的执行过程?想不想对你的代码进行进一步的优化和性能提升? 如果你的回答是yes。那么这篇文章非常适合你,因为本文将会站在离机器码最近的地方来观看JVM的运行原理:Assembly。 使用PrintAssembly 小师妹:F师兄 阅读全文
posted @ 2020-06-29 07:35 flydean 阅读(358) 评论(1) 推荐(0) 编辑
摘要: 简介 6月23日9时43分,北斗系统的第五十五颗导航卫星,暨北斗三号最后一颗全球组网卫星成功发射。国人一片欢腾,为祖国的高科技而骄傲。 那么北斗系统到底是什么?北斗一号,二号三号有什么区别?它的主要作用和它是怎么工作的呢? 本文将会带大家一一揭秘。 北斗系统简介 北斗系统是中国为了国家安全和发展需要 阅读全文
posted @ 2020-06-28 06:48 flydean 阅读(1759) 评论(1) 推荐(1) 编辑
摘要: 简介 我们知道比特币就是挖矿产生的,那么在比特币网络中,挖矿有什么特点呢?怎么分配挖矿收入呢?在这篇文章中你都能找到答案。 比特币的节点构造 上篇文章我们提到了,比特币是一个P2P网络,P2P网络中就有很多个节点,从P2P的定义来看,各个节点的地位是相同的,其实不然。比特币网络的节点各有作用。 我们 阅读全文
posted @ 2020-06-26 11:19 flydean 阅读(1318) 评论(1) 推荐(0) 编辑
摘要: 简介 Byte Code也叫做字节码,是连接java源代码和JVM的桥梁,源代码编译成为字节码,而字节码又被加载进JVM中运行。字节码怎么生成,怎么查看字节码,隐藏在Byte Code背后的秘密是什么呢?快跟小师妹一起来看看吧。 Byte Code的作用 小师妹:F师兄,为什么Java需要字节码呢? 阅读全文
posted @ 2020-06-25 10:12 flydean 阅读(1727) 评论(1) 推荐(0) 编辑
上一页 1 ··· 27 28 29 30 31 32 33 34 35 ··· 49 下一页