- 博客(71)
- 收藏
- 关注
原创 性能专题|实战角度分析JVM 源码
JVM的源码可以解决我们日常工作中遇到的不少问题,但是对于很多开发者来说阅读JVM源码的门槛比较高,而且JVM源码的体系非常大,需要有3-5年的开发经验才能阅读。如果想学源码的开发同学可以阅读本期专题,从实践问题切入,才能有真正提升。...
2022-07-26 18:43:45 416 1
原创 #性能调优专题二#Linux系统中CPU占用率较高问题的优化
在我们日常开发中常常会有一些CPU资源占用过高的问题,这些问题往往会导致我们系统运行的缓慢,甚至造成系统的奔溃,那我们如何进行这种问题的定位及性能优化呢?
2022-06-17 15:51:43 398
原创 Java性能调优专题一:彻底搞懂Java OOM和调优案例实战
这个系列的文章帮你一次理清楚Java oom的那些事,有理论也有案例!适合初级到中级学习,希望大家在Java oom里有所收获!
2022-05-18 15:58:33 451
原创 强强合作,专属于前端性能领域知识专栏即将推出
数字化时代和性能随着数字化时代的到来,我们的生活开始逐渐被各种应用所包围。对于各种应用,我们也从最初的能用就行,到现在有了各种各样的体验追求。而一个应用体验好不好,性能就是其中最关键的指标。那什么是应用性能呢?由谁来负责应用的性能指标呢?其实性能涉及方方面面,从产品设计到需求开发,从测试上线到发布后运维,每一个环节都和性能相关,也就是意味着每一个技术从业者在工作中都要面临性能相关的问题。在这个趋势下,HeapDump性能社区出现了,它是笨马网络旗下国内首个垂直于性能领域的开发者社区,致力于帮助更多开
2022-04-24 15:31:39 2199
原创 【内有惊喜】聊一聊前端性能优化
前端是离用户最近的战场,而前端性能直接影响了用户体验。可以说,性能优化是初、中级工程师向高级工程师进阶的必学知识点,以及核心技能。性能优化的商业价值对于mbify而言,主页加载的速度每提高100ms,转化率就会增加1.11%,平均年收入就会增加380000美元;Pinterest重建了他们的页面以实现性能,使感知等待时间减少了40%,从而将搜索引擎流量和注册量提高了15%;通过将平均页面加载时间减少850毫秒,COOK发现他们能够将转化率提高7%,将跳出率降低7%,并将每个页面的页面数量增加10%
2022-04-12 16:02:59 196
原创 【关于性能优化】15道「私藏」面试题答案及解析
前言之前我们在社区进行了1场面试题打卡活动,其中针对前端、后端、测试的面试题向大家征集题解;目前该活动已结束,其中涉及的面试题及答案解析列在本文,供大家参考!💥有不同想法的伙伴,欢迎在评论区留言、探讨哦~本文的主要内容是👇:后端岗位面试题及答案解析前端岗位面试题及答案解析测试岗位面试题及答案解析后端岗位面试题及答案解析一、如何面向内存实现一个map数据结构?如何设计存储协议、写入/检索策略?本题主要考察的点在于存储协议的设计,以及基于写入/检索的需求来优化存储协议;首先需要阐述清楚如何设计存
2022-03-21 13:58:47 580
原创 HeapDump性能社区专题系列四:后端面试必备问题集
一元复始,万象更新。春节结束,一切又是新的开始。马上就到“金三银四”了,有跳槽打算的工程师,一定已经开始偷偷努力了吧!今天堆堆帮大家整理了一些或经典或刁钻的面试题,以及一些难点解析,希望能帮大家查漏补缺,拿到心仪的offer~1.面试官问我:什么是高并发下的请求合并?作者:why技术前段时间一个在深圳的,两年经验的小伙伴出去面试了一圈,收割了几个大厂 offer 的同时,还总结了一下面试的过程中遇到的面试题,面试题有很多,文末的时候我会分享给大家。这次的文章主要分享他面试过程中遇到的一个场景题:
2022-03-21 11:35:10 426
原创 元宵节,这些技术类灯谜你能猜对多少?
祝大家元宵快乐呀!????传统佳节,自然就有传统节目咯,HeapDump性能社区技术猜谜大赛开始啦!????答题方式: 题目序号和答案(例:0,蓝屏 ),写在留言区就行!如果去社区(heapdump.cn)答题还有小礼品哦!题目来了:????????????0,整个界面都是阿凡达(打一PC/服务器故障现象)1,元宇宙里一只鸡(打一技术名词)2,胖成球的马(打一技术名词)3,一觉醒来变成了一只甲虫(打一开源软件)4,大米会唱美声 (打一著名互联网厂商)5,说了一遍又一遍 (打一编程术语)
2022-02-15 14:11:35 544
原创 20篇精品文章+视频,手把手带你攻克OOM难题|HeapDump性能社区专题精选
Out of memory (OOM) 是一种操作系统或者程序已经无法再申请到内存的状态。经常是因为所有可用的内存,包括磁盘交换空间都已经被分配了。OOM的官方解释是:Understand the OutOfMemoryError Exception,根据HeapDump性能社区专属讲师公与的总结,常见的OOM有以下10种(其中OOM Killer是操作系统层面的概念)。那些年我们遇到的OOM-开题开篇推荐的是公与大佬的视频课程《那些年我们遇到的OOM》第一期,在本期课程中,公与重新梳理了大
2021-12-30 19:38:13 490
原创 数据库性能优化,究竟该如何下手?
数据库性能优化的目标是通过充分利用系统资源来最小化查询的响应时间。对这些资源的最佳利用包括最大限度地减少网络流量、磁盘 I/O 和 CPU 时间。这个目标只能通过理解数据的逻辑和物理结构、系统上使用的应用程序以及数据库的冲突使用如何影响性能来实现。实际上,数据库性能优化是一项系统工程,需要使用系统化分析方法,从硬件、软件和应用场景等多个相关联的维度深入分析、评估与优化,在数据库系统的架构阶段、设计阶段、开发阶段、部署阶段、运行阶段等各环节中去寻找性能问题的瓶颈和解决方案。本文精选了HeapDump性能社区
2021-12-17 17:42:14 812
原创 【JVM源码解析】虚拟机解释执行Java方法(下)
本文由HeapDump性能社区首席讲师鸠摩(马智)授权整理发布第34篇-解析invokeinterface字节码指令与invokevirtual指令类似,当没有对目标方法进行解析时,需要调用LinkResolver::resolve_invoke()函数进行解析,这个函数会调用其它一些函数完成方法的解析,如下图所示。上图中粉色的部分与解析invokevirtual字节码指令有所区别,resolve_pool()函数及其调用的相关函数在介绍invokevirtual字节码指令时详细介绍过,这里不再.
2021-12-10 14:45:34 1021
原创 【JVM源码解析】虚拟机解释执行Java方法(上)
本文由HeapDump性能社区首席讲师鸠摩(马智)授权整理发布第29篇-调用Java主类的main()方法前面已经写了许多篇介绍字节码指令对应的汇编代码执行逻辑,还有一些字节码指令对应的汇编代码逻辑没有介绍,这些指令包括方法调用指令、同步指令、异常抛出指令,这些指令的汇编代码实现逻辑比较复杂,所以后面在介绍到方法调用、同步和异常处理的知识点时,会通过大篇幅的文章进行详细介绍!在第1篇中大概介绍过Java中主类方法main()的调用过程,这一篇介绍的详细一点,大概的调用过程如下图所示。其中浅红色.
2021-12-03 18:00:20 755
原创 【JVM源码解析】模板解释器解释执行Java字节码指令(下)
本文由HeapDump性能社区首席讲师鸠摩(马智)授权整理发布第22篇-虚拟机字节码之运算指令虚拟机规范中与运算相关的字节码指令如下表所示。0x60iadd将栈顶两int型数值相加并将结果压入栈顶0x61ladd将栈顶两long型数值相加并将结果压入栈顶0x62fadd将栈顶两float型数值相加并将结果压入栈顶0x63dadd将栈顶两double型数值相加并将结果压入栈顶0x64isub将栈顶两int型数值相减并将结果压入栈顶.
2021-11-25 11:38:06 1110
原创 【JVM源码解析】模板解释器解释执行Java字节码指令(上)
本文由HeapDump性能社区首席讲师鸠摩(马智)授权整理发布第17章-x86-64寄存器不同的CPU都能够解释的机器语言的体系称为指令集架构(ISA,Instruction Set Architecture),也可以称为指令集(instruction set)。Intel将x86系列CPU之中的32位CPU指令集架构称为IA-32,IA是“Intel Architecture”的简称,也可以称为i386、x86-32。AMD等于Intell提出了x86系列的64位扩展,所以由AMD设计的x86系列.
2021-11-25 11:37:12 1041
原创 深入底层|JVM源码解读:HotSpot的模板解释器
本文由HeapDump性能社区首席讲师鸠摩(马智)授权整理发布第9篇-字节码指令的定义之前的文章介绍了解释执行下的Java栈帧创建以及字节码分派逻辑,但是始终没有讲到虚拟机到底是怎么执行Java方法中的字节码的,在介绍字节码的执行之前,需要先知道字节码指令的定义。在Bytecodes::initialize()函数中会定义字节码指令的一些属性。这个函数的调用链如下:init_globals()bytecodes_init() Bytecodes::initialize()在Bytecode.
2021-11-11 19:16:15 1196
原创 【超硬核】JVM源码解读:Java方法main在虚拟机上解释执行
本文由HeapDump性能社区首席讲师鸠摩(马智)授权整理发布第1篇-关于Java虚拟机HotSpot,开篇说的简单点开讲Java运行时,这一篇讲一些简单的内容。我们写的主类中的main()方法是如何被Java虚拟机调用到的?在Java类中的一些方法会被由C/C++编写的HotSpot虚拟机的C/C++函数调用,不过由于Java方法与C/C++函数的调用约定不同,所以并不能直接调用,需要JavaCalls::call()这个函数辅助调用。(我把由C/C++编写的叫函数,把Java编写的叫方法,后续也.
2021-11-11 15:35:50 1310 1
原创 3个坏代码导致的性能问题案例:CPU占用飙到了900%
读过《重构 - 改善既有代码的设计》一书的同学们应该都很了解“代码的坏味道”。当然确定什么是代码“坏味道”是主观的,它会随语言、开发人员和开发方法的不同而不同。在工作当中,很多时候都是在维护之前的项目和在此基础上增加一些新功能,为了能让项目代码易于理解和维护,要时刻注意代码中的“坏味道”,当发现代码如果有坏味道了,要及时去重构它使其变成优秀的整洁的代码。今天我们要聊的是“坏味道的代码”给系统性能带来的影响,笔者会给大家展示几个案例,希望能对大家有所启发和帮助。FGC实战:坏代码导致服务频繁FGC无响应问题
2021-10-31 16:37:55 1037
原创 Java程序员涨薪必备的性能调优知识点,收好了!
Java 应用性能优化是一个老生常谈的话题,典型的性能问题如页面响应慢、接口超时,服务器负载高、并发数低,数据库频繁死锁等。尤其是在“糙快猛”的互联网开发模式大行其道的今天,随着系统访问量的增加和代码的日渐臃肿,各种性能问题开始纷至沓来。Java 应用性能的瓶颈点非常多,比如磁盘、内存、网络 I/O 等系统因素,Java 应用代码,JVM GC,数据库,缓存等。将 Java 性能优化分为 4 个层级:应用层、数据库层、框架层、JVM 层。每层优化难度逐级增加,涉及的知识和解决的问题也会不同。应用层需要
2021-10-22 19:52:40 2272
原创 1024程序员段位大挑战,赢1024现金大奖! 审核中
1️⃣0️⃣2️⃣4️⃣!祝一G棒的程序工程师们,节日快乐呀????~值此佳节之际,HeapDump性能社区必有大动作;这不,堆堆马上就来派福利了!High大了,High大了,这才是给各位工程师大大们过节的????正确姿势!1024 Part1????长按扫码或手机点击链接参与答题https://heapdump.cn/activity-1024?source=csdn⏰参与时间答题开始:10月20日9:00特/一/二等奖开奖:10月24日晚上10:24名单整理公布:10月25日12
2021-10-20 15:51:19 249
原创 HeapDump性能社区Young GC异常问题排查实战案例精选合集
在高并发下,Java程序的GC问题属于很典型的一类问题,带来的影响往往会被进一步放大。不管是「GC频率过快」还是「GC耗时太长」,由于GC期间都存在Stop The World问题,因此很容易导致服务超时,引发性能问题。本期小编为大家筛选了4篇Young GC问题排查文章,帮大家复习YGC的执行原理和问题排查要点。1.YGC问题排查,又让我涨姿势了!作者:Rocketshttps://heapdump.cn/article/1661497本文作者分享了一个棘手的Young GC耗时过长的线上案例,首
2021-09-08 17:54:37 307
原创 HeapDump性能社区Full GC异常问题排查实战案例精选合集
处理过线上问题的同学基本都遇到过系统突然运行缓慢,CPU 100%,以及 Full GC 次数过多的问题。这些问题最终导致的直观现象就是系统运行缓慢,并且有大量的报警。本期小编集合了HeapDump性能社区内的4篇Full GC异常问题排查文章,通过几位作者记录的真实案例,提醒自己避免踩坑,顺便复习相关知识点。1.一顿操作后,FGC频率降低到原来的1/400作者:阿飞Javaerhttps://heapdump.cn/article/2405044作者通过一个多月的努力,将 FullGC 从 40
2021-09-02 15:41:27 363
原创 XPocket插件使用案例合集——性能问题排查分析,一个XPocket足以!
你是否遇到过这些问题?系统存在性能问题问题排查时一头雾水,不知道用什么工具查找工具,下载和安装都很浪费时间排查问题十分繁琐,想尽量简化排查方案以供后续使用XPocket是PerfMa开源的为终结性能问题而生的插件容器,它将定位或者解决各种性能问题的常见的Linux命令,JDK工具,知名性能工具等适配成各种XPocket插件,并让它们可以相互联动,一键解决特定的性能问题。目前XPocket插件生态已经实现了HSDB、JDB、JConsole、Perf、Arthas等多个优秀的开源性能工具的
2021-08-25 18:46:48 423
原创 HeapDump性能社区OOM问题排查实战案例精选合集
内存溢出(Out Of Memory,简称OOM)是指应用系统中存在无法回收的内存或使用的内存过多,最终使得程序运行要用到的内存大于能提供的最大内存。此时程序就运行不了,系统会提示内存溢出,有时候会自动关闭软件,重启电脑或者软件后释放掉一部分内存又可以正常运行该软件,而由系统配置、数据流、用户代码等原因而导致的内存溢出错误,即使用户重新执行任务依然无法避免。JVM发生OOM异常可能是以下几种情况:Java堆溢出、虚拟机栈和本地方法栈溢出、方法区和运行时常量池溢出、本机直接内存溢出。这几种情况分别由不同的原
2021-07-23 15:51:50 353
原创 PerfMa 社区全新升级为 HeapDump 性能社区,整装再出发!
作为开发者,我们总会面临各种各样的性能问题。它们可能出现在应用层、数据库层、框架层、虚拟机层。大部分问题可以借助我们平时的经验解决,但有时候,我们也会碰到一些难以定位、分析和解决的疑难杂症。纵观各大技术社区,有关性能的内容并不匮乏,但往往处于一种零散、无序的状态;在搜索引擎搜索某些经典性能问题,又难以在海量搜索结果中快速找到自己需要的答案,且这其中还存在大量重复的内容;还有些特殊的问题,以自己一个人的智慧很难解决,这时候如果能有一位性能领域的专家可以求助就好了。PerfMa 社区就是在这样的背.
2021-07-19 18:16:10 607
原创 PerfMa技术沙龙•上海2021︱全链路压测体系建设的探索与实践
PerfMa技术沙龙•上海2021︱全链路压测体系建设的探索与实践背景介绍近几年全链路压测无疑成为了一个热门话题,在各大技术峰会上都可以看到它的身影。业务场景的越发复杂化、海量数据冲击下整个业务系统链的可用性、服务能力的瓶颈等都已成为目前亟待解决的技术难题~环境、配置、数据的差异,性能验证的测试结果仅代表实验室?项目紧急验证后快速上线,上线后系统响应慢、业务不可用?业务场景变化、量突增,出现用户访问卡顿/无法响应?而今,PerfMa将携手3位资深测试大佬在18日为您全方位讲解您关注的问题~
2021-04-13 15:53:23 236
原创 PerfMa 技术征文 | 论程序员,你曾遇到关于性能的那些事
作为一名遇到过无数性能、稳定性问题的优秀码农,你是否有遇到JVM crash的情况? 你是否有遇到内存溢出的情况?你是否有遇到急需解决的工具小bug时,未把代码重新看完束手无策的情况?你是否有遇到2-3个工具、3-4个窗口、5-6个命令轮流转、持续复制黏贴时,无从下手的情况…这些情况你是否解决了呢?在此分享出你的所见、所闻、所想,以帮助到更多遇到类似问题的人~一、活动主题论程序员,你曾遇到关于性能的那些事(点击前往PerfMa技术社区了解活动详情)二、活动时间2021年3月18日-202
2021-03-17 16:36:55 198 1
原创 PerfMa技术沙龙第一站——北京,我们来啦!
PerfMa技术沙龙第一站——北京,我们来啦!亲爱的开发小伙伴,你们好!PerfMa技术社区作为一个专注性能领域的技术社区,已经成立一年多了。在这里,大家阅读精品文章,分享学习心得,讨论技术难题,是你们让社区越来越和谐温暖,越来越有价值。但线上的交流始终有限,应众多小伙伴的期待,我们终于要开展线下活动啦!这一次,我们想与早已在网上成为好朋友的大家当面畅聊!第一站,北京,我们来了!此次活动我们将以“Java应用生产性能优化实践”为主题,邀请四位资深架构师来为大家分享。不能去现场的朋友也不用担心,届时我
2021-03-04 11:42:35 290 1
原创 预告 | XPocket开源产品发布会将于1月15日正式线上直播!
随着全球开源生态不断发展,开源项目数量已呈指数级增长,并且逐渐覆盖了全栈技术领域。PerfMa作为一家有社会责任感和技术情怀的IT系统稳定性保障厂商,也积极布局开源项目,拥抱开源,从性能领域出发,希望让更多的企业和开发者受益。2020年7月,PerfMa推出了XPocket 1.0,帮助开发者进行Java应用性能调优。但是作为一个工具,它不可能以一己之力去解决所有问题。因此,XPocket 2.0版本应运而生。这一次,我们赋予了XPocket一个极为开放的技术架构,它将成为属于每个人自己的包罗万象的工具箱
2021-01-15 11:02:34 293
原创 遇到长GC停顿、CPU满载、内存泄露、JVM崩溃等高频问题,看这里!
2020/09/20 PerfMa成立三周年了,同时PerfMa技术社区上线也一周年了,做个小结,以慰时间之慨,也准备了一些礼物感谢大家。(记得看到最后哦~)PerfMa技术社区社区成立之初期望达到的效果是技术人的伊甸园:在JVM里内存分代有块区域叫Eden(伊甸园,虽然我从不这么翻译,感觉在这里还挺合适),绝大部分对象分配都会在Eden里分配,我们也希望在这里诞生很多牛逼的技术专家。最全的性能案例库:希望大家能在这里分享性能问题排序经验,让大家少走弯路。全球最大的JVM参数交流
2020-09-25 10:03:38 396
原创 Hotspot GC研发工程师也许漏掉了一块逻辑
概述今天要说的这个问题,是我经常面试问的一个问题,只是和我之前排查过的场景有些区别,属于另外一种情况。也许我这里讲了这个之后,会成为不少公司JVM必问之题,所以本文还是值得大家好好看看的,相信也会让你很有收获,我把这个问题简单归纳为Hotspot GC研发工程师也许漏掉了一块逻辑。如下图所示,在上一次YGC之后,from space的使用率是12%,但是在下一次YGC准备发生的时候,发现from space的使用率变成了99%。OK,看到这里,请停下来思考10秒钟,想想这个现象是否正常。
2020-08-18 11:40:10 169
原创 分享一个Flink checkpoint失败的问题和解决办法
本文来自: PerfMa技术社区PerfMa(笨马网络)官网接触Flink一段时间了,遇到了一些问题,其中有一个checkpoint失败导致作业重启的问题,遇到了很多次,重启之后一般也能恢复正常,没有太在意,最近2天有同事又频繁遇到,这里记录一下解决方案和分析过程。我们的flink测试环境有3个节点,部署架构是每个flink节点上部署一个HDFS的DataNode节点,hdfs用于flink的checkpoint和savepoint现象看日志是说有个3个datanode活着,文件副本是1,但.
2020-08-14 16:22:52 2572 1
原创 Hotspot GC研发工程师也许漏掉了一块逻辑
本文来自: PerfMa技术社区PerfMa(笨马网络)官网概述今天要说的这个问题,是我经常面试问的一个问题,只是和我之前排查过的场景有些区别,属于另外一种情况。也许我这里讲了这个之后,会成为不少公司JVM必问之题,所以本文还是值得大家好好看看的,相信也会让你很有收获,我把这个问题简单归纳为Hotspot GC研发工程师也许漏掉了一块逻辑。如下图所示,在上一次YGC之后,from space的使用率是12%,但是在下一次YGC准备发生的时候,发现from space的使用率变成了99%。OK.
2020-08-05 14:59:04 200
原创 JVM源码分析之Metaspace解密
本文来自: PerfMa技术社区PerfMa(笨马网络)官网概述metaspace,顾名思义,元数据空间,专门用来存元数据的,它是jdk8里特有的数据结构用来替代perm,这块空间很有自己的特点,前段时间公司这块的问题太多了,主要是因为升级了中间件所致,看到大家讨论来讨论去,看得出很多人对metaspace还是模棱两可,不是很了解它,因此我觉得有必要写篇文章来介绍一下它,解开它神秘的面纱,当我们再次碰到它的相关问题的时候不会再感到束手无策。通过这篇文章,你将可以了解到为什么会有metaspa.
2020-07-15 10:52:04 829
原创 全链路压测体系建设方案的思考与实践
本文来自: PerfMa技术社区PerfMa(笨马网络)官网系统性能测试的几个痛点在金融、零售快消、物流、新能源等传统行业,通常都会有一个相对独立的测试团队,其中包括了性能测试。过去性能测试通常是开发自测、或以项目需求驱动的方式实施,也就是根据需求在测试环境验证相应的性能目标,出具性能验收报告后就算结束。但随着业务系统的迭代速度不断加快,这种做法也会存在诸多不足:首先,测试环境得出的测试结果,可以验证程序级问题,但因环境和数据的差异,无法验证或获得业务系统在生产环境的性能指标。其次,随着业.
2020-07-07 16:36:04 1026
原创 初级Java工程师也能轻松进行JVM调优了
本文来自: PerfMa技术社区PerfMa(笨马网络)官网Java 性能调优对于每一个Java程序员来说,是实现技术进阶必不可缺的知识了。比如:一台8G的服务器怎么配置JVM参数?我的JVM参数是否合理?如何分析内存Dump文件?如何分析线程Dump文件?等等…,你肯定或多或少都遇到过,熟知Java虚拟机的工作原理可以大幅提升日常编程的效率,对寻常Bug的修复更是轻而易举。为此,PerfMa推出了一款 Java 应用综合体检工具,将原本枯燥繁杂的配置项、线程状态等信息通过清晰美观的可视化界面展现.
2020-07-02 15:32:11 476
原创 JVM源码分析之Object.wait/notify(All)完全解读
本文来自: PerfMa技术社区PerfMa(笨马网络)官网概述本文其实一直都想写,因为各种原因一直拖着没写,直到开公众号的第一天,有朋友再次问到这个问题,这次让我静心下来准备写下这篇文章,本文有些东西是我自己的理解,比如为什么JDK一开始要这么设计,初衷是什么,没怎么去找相关资料,所以只能谈谈自己的理解,所以大家看到文章之后可以谈谈自己的看法,对于实现部分我倒觉得说清楚问题不大,code is here,看明白了就知道怎么回事了。Object.wait/notify(All)大家都知道主要是协.
2020-06-19 15:46:13 235
原创 记录一次Flink作业异常的排查过程
本文来自: PerfMa技术社区PerfMa(笨马网络)官网最近2周开始接手apache flink全链路监控数据的作业,包括指标统计,业务规则匹配等逻辑,计算结果实时写入elasticsearch. 昨天遇到生产环境有作业无法正常重启的问题,我负责对这个问题进行排查跟进。第一步,基础排查首先拿到jobmanager和taskmanager的日志,我从taskmanager日志中很快发现2个基础类型的报错,一个是npe,一个是索引找不到的异常elasticsearch sinker在执行写入数.
2020-06-17 11:56:22 2050 1
原创 JVM 源码分析之一个 Java 进程究竟能创建多少线程
本文来自: PerfMa技术社区PerfMa(笨马网络)官网概述虽然这篇文章的标题打着JVM源码分析的旗号,不过本文不仅仅从 JVM 源码角度来分析,更多的来自于 Linux Kernel 的源码分析,今天要说的是 JVM 里比较常见的一个问题。这个问题可能有几种表述一个Java进程到底能创建多少线程?到底有哪些因素决定了能创建多少线程?java.lang.OutOfMemoryError: unable to create new native thread的异常究竟是怎么回事不过.
2020-06-11 15:11:25 416
原创 JDK8在泛型类型推导上的变化
本文来自: PerfMa技术社区PerfMa(笨马网络)官网概述JDK8升级,大部分问题可能在编译期就碰到了,但是有些时候比较蛋疼,编译期没有出现问题,但是在运行期就出了问题,比如今天要说的这个话题,所以大家再升级的时候还是要多测测再上线,当然JDK8给我们带来了不少红利,花点时间升级上来还是值得的。问题描述还是老规矩,先上demo,让大家直观地知道我们要说的问题。public class Test { static <T extends Number> T getO.
2020-06-09 14:53:55 208
原创 谨防JDK8重复类定义造成的内存泄漏
本文来自: PerfMa技术社区PerfMa(笨马网络)官网概述如今JDK8成了主流,大家都紧锣密鼓地进行着升级,享受着JDK8带来的各种便利,然而有时候升级并没有那么顺利?比如说今天要说的这个问题。我们都知道JDK8在内存模型上最大的改变是,放弃了Perm,迎来了Metaspace的时代。如果你对Metaspace还不熟,之前我写过一篇介绍Metaspace的文章,大家有兴趣的可以看看我前面的那篇文章。我们之前一般在系统的JVM参数上都加了类似-XX:PermSize=256M -XX:Max.
2020-06-04 14:47:42 320
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人