火山引擎MARS-APMPlus 应用性能监控帮助客户Java OOM崩溃率下降80%
本文将会从Java内存基础开始,详细介绍“基于Hprof内存快照的线上JavaOOM归因方案”的底层原理与技术细节,欢迎接入MARSAPMPlus应用性能监控使用。作者:字节跳动终端技术——王涛一、前言如何定位和解决AndroidApp因为内存不足(JavaOOM)引发的线上问题一直是业界的难题。崩溃场景能抓取到的常规信息中并不包括内存分配详情——不了解内存被谁持有,自然也无法追查内存不足的根源。针对这个问题,ClientInfra和头条抖音等业务方合作,通过一系列技术调研,自研了一套基
【Java面试题】阿里+头条+腾讯大厂Java笔试真题
垃圾回收算法垃圾回收算法的实现设计到大量的程序细节,并且每一个平台的虚拟机操作内存的方式都有不同,所以不需要去了解算法的具体实现。复制算法将可用内存按容量划分为大小相等的两块,每次只使用其中的一块。当这一块的内存用完了,就将还存活着的对象复制到另外一块上面,然后再把已使用过的内存空间一次清理掉。这样使得每次都是对整个半区进行内存回收,内存分配时也就不用考虑
Wesley13 Wesley13
4年前
CPU缓存和内存屏障
CPU性能优化手段缓存为了提高程序运行的性能,现代CPU在很多方面对程序进行了优化。例如:CPU高速缓存。尽可能地避免处理器访问主内存的时间开销,处理器大多会利用缓存(cache)以提高性能。!(https://oscimg.oschina.net/oscnet/bbe04d9c9b6eb586bfccbd23808
Stella981 Stella981
4年前
POI操作Excel时Cannot get a text value from a numeric formula cell非法参数异常
POI操作Excel时Cannotgetatextvaluefromanumericformulacell非法参数异常参考文章:(1)POI操作Excel时Cannotgetatextvaluefromanumericformulacell非法参数异常(https://www.oschina.net/a
Stella981 Stella981
4年前
Netty 的内存池源码
_/\__\Copyright2013TheNettyProject__\__\TheNettyProjectlicensesthisfiletoyouundertheApacheLicense,__\version2.0(the"License");youmaynotusethisf
Stella981 Stella981
4年前
Netty如何监控内存泄露
Netty如何监控内存泄露\TOC\前言一般而言,在Netty程序中都会采用池化的ByteBuf,也就是PooledByteBuf以提高程序性能。但是PooledByteBuf需要在使用完毕后手工释放,否则就会因为PooledByteBuf申请的内存空间没有归还进而造成内存泄露,最终OOM。而一旦
Stella981 Stella981
4年前
Noark入门之内存监控
服务器正常都需要关注内存使用情况常规获取内存使用情况可以使用Runtime或MemoryMXBeanNoark提供了一个内存监控服务,选择了Runtime实现,详情参考xyz.noark.game.monitor.impl.MemoryMonitorService在GameServerConfiguration类中添加如下代
Wesley13 Wesley13
4年前
Java 中 final 内存语义
对于final域,编译器和处理器要遵守两个重排序规则。1)在构造函数内对一个final域的写入,与随后把这个被构造对象的引用赋值给一个引用变量,这两个操作之间不能重排序。2)初次读一个包含final域的对象的引用,与随后初次读这个final域,这两个操作之间不能重排序。下面通过一些示例性的代码来分别说明这两个规则。 !(ht
待兔 待兔
1年前
Java内存的可见性
Java内存的可见性可见性:一个线程对共享变量的修改,能够及时被其它线程看到共享变量:如果一个变量在多个线程的工作内存中都存在副本,那么这个变量就是这几个线程的共享变量Java内存模型(JMM):描述了Java程序中各种线程共享变量的访问规则,以及在JVM
京东云开发者 京东云开发者
10个月前
学习下Redis内存模型
作者:京东零售吴佳前言redis,对于一个java开发工程师来讲,其实算不得什么复杂新奇的技术,但可能也很少人去深入了解学习它的底层的一些东西。下面将通过对内存统计、内存划分、存储细节、对象类型&内部编码这四个模块来学习学习redis的内存模型,手字笔录,