oom 如何避免 高并发_【面试】如何避免OOM的发生

小编基础薄弱,发的内容不算是抄袭,但也基本都是借鉴,若有不足的地方还望点评。

内存泄漏(Out Of Memory)俗称OOM,翻了网上一些资料,发生OOM的情况大致有两种,一种是Activity当中对象的引用故障,另一种是APP的内存限制。

1.针对引用对象促使OOM的Handler,参考原文

主要是GC在回收Activity中发现Handler的引用而无法顺利回收Activity的问题,简单的说,就是后台线程还在执行某些数据操作,尚未传回给Handler处理,此刻回收掉Activity便会容易引发一个内存溢出的情况,那么针对Handler我们可以做那些改进呢?一方面,可以在finish Activity之前先removeCallBack()把消息运输对象从消息队列中移除,另一方面还可以将Handler生命为静态类(静态类不持有外部的引用对象),并在Handler中调用WeakReFerence(),具体事例如下:

static class MyHandler extends Handler{

WeakReference activityReference;

public MyHandler(Activity activity){

activityReference = new WeakReference(activity);

}

@Override

public void handleMessage(Message msg){

final Activity activity = activityReference.get();

}

}

2.针对APP内存使用限制,参看原文

原因算是很明确了的,其实就是手机应用内存超过指标GC回收负担太重就挂掉了。而说到内存限制,难免想到应用中图片的加载和缓存。其解决方案主要有以下几点:

a.通过SoftReference管理图片资源,实现GC的主动回收和释放

b.LinkHashMap(强引用)+SoftReference(软引用)

对于加载下来的图片可以通过BitmapFactroy执行大小加工处理,处理完成记得要设置Bitmap为null或者recycle掉。LinkHashMap实现一级缓存,存储最近加载的资源,将保存时间较长的资源释放掉,此时可将这些资源暂时存储到二级缓存softReference当中,当GC心情好的时候就会像回收掉二级缓存中的资源。(加载资源会先依据一级缓存到二级缓存的顺序去查找,找不着就重新加载)

c. LruCache  + sd的缓存方式

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/512434.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

好难啊……一个 try-catch 问出这么多花样

作者 | 阿Q来源 | 阿Q说代码刚刚面试回来的B哥又在吐槽了:现在的面试官太难伺候了,放着好好的堆、栈、方法区不问,上来就让我从字节码角度给他分析一下try-catch-finally(以下简称TCF)的执行效率.....今天我们就来好好…

数据是如何被保护的?高质量存储告诉你

简介: 作为关键信息基础设施运营者,阿里云提供了全方位的数据安全保护方案。今天,我们就从数据存储的角度来聊一聊数据是如何被保护的。 原文链接 本文为阿里云原创内容,未经允许不得转载。

无法启动此程序因为计算机丢失dtlui,电脑缺少dll文件_电脑开机总是出来DLL文件丢失,...

最佳答案如果您的电脑开机出现“加载C:/WIND/SYSTEM32.UKWIEG96.DLL时出错”之类的加载dll文件出错或提示dll文件丢失,但又可以正常进入系统,那么这篇文章或许可以给您带来解决办法。碰到这种情况我们可以肯定是dll因为某些原因出错或丢失了&…

findler mac 隐藏文件_fiddler使用实例之----------查找隐藏的真实地址!!!!

这个教程讲解下如何用fddler ,找到页面的真是地址同样也是可以找到页面隐藏的内容,两者原理是一样的,在页面能看到的信息,页面源代码却看不到,也就是这样的信息其实并不在这个页面上,而是通过一些方法调用来…

Nacos 开源、自研、商业化三位一体战略解读

简介: Nacos作为整个阿里云原生三位战略中的核心组成部分,我们在2018年以Configserver/VIPServer/Diamond为基础通过Nacos开源输出阿里十年沉淀的注册中心和配置中心能力,并且快速成为国内首选。并且通过云产品MSE以BaaS模式输出解决方案能力…

Haystack 太强了!存 2600 亿图片

作者 | 奇伢来源 | 奇伢云存储小文件存储小文件存储,老生常谈的问题。先聊聊小文件存储重点关注的是什么?以前我们提过,对于磁盘来说,小 io 吃 iops,大块 io 吃吞吐。划重点:小文件的重点是 io 次数。为什么…

全国计算机网络教学研讨会,历届全国高校计算机网络教学研讨会

1. 第六届全国高校计算机网络教学研讨会在内蒙古大学成功召开2. 第五届全国高校计算机网络教学研讨会在温州大学成功召开 2012年10月26日-27日,第五届全国高校计算机网络教学研讨会在温州大学召开。会议由中国计算机学会互联网专业委员会和中国计算机学会…

Dubbo 和 HSF 在阿里巴巴的实践:携手走向下一代云原生微服务

简介: HSF 和 Dubbo 的融合是大势所趋。为了能更好的服务内外用户,也为了两个框架更好发展,Dubbo 3.0 和以 Dubbo 3.0 为内核适配集团内基础架构生态的 HSF 3 应运而生。 作者 | 郭浩 Dubbo 和 HSF 都是阿里巴巴目前在使用的微服务 RPC 框架…

apache过滤恶意频繁访问_采用网关过滤器实现权限验证及对异常统一处理

采用网关过滤器实现权限验证1、创建 zuul 项目2、修改 pom.xml 文件<project xmlns"http://maven.apache.org/POM/4.0.0" xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation"http://maven.apache.org/POM/4.0.0 http://mav…

如何攻破容器持久化存储挑战?

背景 云原生趋势下&#xff0c;应用容器化比例正在快速增长&#xff0c;Kubernetes 也已成为云原生时代新的基础设施。 观察今天的容器和 Kubernetes 的应用现状&#xff0c;可以看到两个普遍的现象&#xff1a; 首先&#xff0c;在云上托管 Kubernetes 已经成为企业上云及运…

用科技共创美好:英特尔助力北京冬奥会新体验

2022年1月24日&#xff0c;北京2022年冬奥会在即&#xff0c;北京冬奥会的气氛愈发浓烈。作为奥运会全球TOP合作伙伴&#xff0c;英特尔以基于英特尔处理器的创新技术支持奥运会&#xff0c;释放科技冬奥的魅力。今天&#xff0c;英特尔在位于前门建成的全新升级的“英特尔北京…

职称计算机Word2003是考什么,2017年职称计算机考试word2003考点

2017年职称计算机考试word2003考点计算机在我们的工作中太重要了&#xff0c;很多工作岗位对计算机都有一定的要求。以下是小编整理的2017年职称计算机考试word2003考点&#xff0c;希望可以为您的学习带来帮助!内置段落样式1、套用段落样式&#xff1a;选中要套用样式的一个或…

李飞飞:新技术变革时代的数据库产业

简介&#xff1a; 云计算将改变数据库格局 近日&#xff0c;阿里云智能数据库事业部负责人李飞飞在媒体沟通会上发表了“新技术变革时代的数据库产业”主题演讲。 李飞飞说&#xff0c;云数据库已经成为数据库最重要的发展方向&#xff0c;从国际国内数据库产业的发展来看&am…

iostat命令详解_对iostat输出结果的理解

前言&#xff1a;日常工作中&#xff0c;线上服务会出现各种奇奇怪怪的问题&#xff0c;每次出现问题都是根据现象猜测出现问题的原因&#xff0c;比如请求响应慢了&#xff0c;就排查整个请求的逻辑&#xff0c;每一步花了多少时间&#xff0c;分析半天终于发现是某一步慢了以…

计算机windows10属性配置,电脑显示属性设置,教你win10系统电脑显示属性的设置教程...

今天小编教你win10系统电脑显示属性的设置教程&#xff0c;显卡作为计算机最为基本的配置和最重要的配件之一&#xff0c;承担着输出显示图形的任务。不知电脑显卡设置在哪里打开及如何设置的用户&#xff0c;请来看看下面的介绍吧。显卡是一台电脑的第二个核心&#xff0c;我们…

庖丁解牛-图解MySQL 8.0优化器查询解析篇

简介&#xff1a; SQL优化器本质上是一种高度抽象化的数据接口的实现&#xff0c;经过该设计&#xff0c;客户可以使用更通用且易于理解的SQL语言&#xff0c;对数据进行操作和处理&#xff0c;而不需要关注和抽象自己的数据接口&#xff0c;极大地解放了客户的应用程序。 作者…

历时 4 年,阿里云推出金融核心系统转型实践书

在过去 40 年中&#xff0c;基本由国外技术支撑着我国金融行业核心系统的建设。随着近十年来&#xff0c;中国互联网飞速发展&#xff0c;在数字金融领域&#xff0c;中国正发生巨变&#xff0c;如手机支付、纳税平台应用、风控系统等业务的普及&#xff0c;以往国外的实践经验…

三款典型国产分布式数据库的对比评测

简介&#xff1a; 编者按&#xff1a;近几年国产数据库市场风生水起&#xff0c;涌现了多款优秀的国产数据库产品&#xff0c;本文选取了三款典型的国产分布式数据库进行全方位对比压测&#xff0c;呈现了国产分布式数据库的发展现状。 对于所有的应用系统&#xff0c;数据都是…

bootstraptable中responsehandle获取数据缺失_Python中的向量化字符串操作

Python的一个使用优势是它在处理和操作字符串数据方面相对容易。在此基础上Pandas提供了一套全面的向量化字符串操作(vectorized string operation)&#xff0c;这些操作成为处理现实世界数据时所需的必不可少的功能。在本文中&#xff0c;我们将介绍一些Pandas的字符串操作&am…

计算机二级的编程题,计算机二级编程题(范文).doc

第 PAGE \* Arabic 1 页计算机二级编程题(范文)整数排序题☆题目1(整数排序题)在文件in.dat中有200个正整数&#xff0c;且每个数均在1000至9999之间。函数ReadDat()读取这200个数存放到数组aa中。请编制函数jsSort()&#xff0c;其函数的功能是&#xff1a;要求按每个数的后三…