当前位置: 首页 > news >正文

莒县城乡建设局网站作文网址

莒县城乡建设局网站,作文网址,青海旭云网站建设,沈阳网站建设优化企业一、内存优化介绍 1.背景介绍 内存是大问题但缺乏关注压实骆驼的最后一个稻草#xff08;堆栈溢出#xff09; 2.内存问题 内存抖动#xff1a;锯齿状、GC导致卡顿内存泄露#xff1a;可用内存减少、频繁GC内存溢出#xff1a;OOM#xff0c;程序异常 二、优化工具选…一、内存优化介绍 1.背景介绍 内存是大问题但缺乏关注压实骆驼的最后一个稻草堆栈溢出 2.内存问题 内存抖动锯齿状、GC导致卡顿内存泄露可用内存减少、频繁GC内存溢出OOM程序异常 二、优化工具选择 1.工具选择 Memory Profiler 实时图标展示应用内存使用量 识别内存泄露、抖动等 提供捕获堆转储、强制GC以及跟踪内存分配的能力 总结 方便直观 线下平时使用 Memory Analyzer 强大的Java Heap 分析工具查找内存泄露及内存占用生成整体报告、分析问题等线下深入使用 LeakCanary 自动内存泄露检测https://github.com/square/leakcanary线下集成 三、Android 内存管理机制 一、Java 内存管理机制 Java 内存分配 方法区存储类信息常量、静态变量等如 public static final 的一些变量、常量。所有线程共享虚拟机栈存储局部变量和操作数栈的为Java方法服务的本地方法栈为native 方法服务的堆几块内存块中最大的内存。所有线程共享对象的内存分配实际上都是在堆上分配的。在虚拟机栈上分配的都是引用会指向在堆中创建的真正的对象。是GC主要作用的一块区域。常说的内存泄露也是发送在堆上的。程序计数器存储当前线程执行方法执行到第几行 Java 内存回收算法 标记-清除算法 标记出所有需要回收的对象 统一回收所有被标记的对象 缺点 标记和清除效率不高 产生大量不连续的内存碎片 复制算法 将内存划分为大小相同的两块一块内存用完之后复制存活对象到另一块清理另一块内存 优缺点实现简单运行高效相比标记-清除算法浪费一半空间代价大 标记-整理算法 标记过程与 “标记-清除” 算法一样存活对象王一端进行移动清理其余内存 优点避免标记-清除导致的内存碎片避免复制算法的空间浪费 分代收集算法 结合多种收集算法优势新生代对象存活率低使用复制算法老年代对象存活率高使用标记-整理算法 二、Android内存管理机制 内存弹性分配分配值与最大值受具体设备影响OOM场景设备内存真正不足、可用内存不足设备内存不足以分配给当前应用 Dalvik 与 ART 区别 Dalvik 仅固定一种回收算法Art 回收算法可以运行期选择回收算法5.0之后都是ArtArt 具备内存整理能力减少内存空洞 Low Memory Killer 机制 针对所有进程来说的当手机内存不足的情况下Low Memory Killer 机制会针对所有进程进行一个回收按照进程分配优先级顺序找低优先进程进行回收。同时也会考虑回收收益。例如回收一个进程是30兆还是300兆 进程分类 前台进程可见进程服务进程后台进程空进程 四、内存抖动解决实战 内存抖动介绍 定义内存频繁分配和回收导致内存不稳定 表现频繁GC、内存曲线呈锯齿状 危害导致卡顿、OOM 内存抖动导致OOM 频繁创建对象导致内存不足及碎片不连续不连续的内存片无法被分配导致OOM 内存抖动解决实战 使用Memory Profiler 初步排查 使用Memory Profiler 或Cpu Profiler 结合代码排查 内存抖动解决技巧 找循环或者频繁调用的地方 五、内存泄露解决实战 内存泄露介绍 定义内存中存在已经没有用的对象 表现内存抖动、可用内存逐渐减少 危害内存不足、GC频繁、OOM 内存泄露解决实战 Memory Analyzer https://www.eclipse.org/mat/downloads.php转换命令hprof-conv 原文件路径 转换后文件路径 总结 使用Memory Profiler 初步观察可用内存逐渐减少时可以断定有内存泄露通过Memory Analyzer 结合代码确认 六、全面理解MAT 七、ARTHook 优雅检测不合理图片 Bitmap 内存模型 Api10 之前Bitmap 自身在Dalvik Heap 中像素在native 有一个坏处java 层内存回收后native 层不知道Api10 之后像素也被放在Dalvik Heap 中Api 26之后像素在Native(增加了java 向native 层的通知机制) 获取Bitmap 占用内存 getByteCount宽 x 高 x 一像素占用内存 常规检测不合理图片方式 背景图片对内存优化至关重要、图片宽高大于控件宽高 实现继承ImageView ,覆写实现计算大小 缺点侵入性强、不通用 ARTHook 实战 介绍 挂钩将额外的代码钩住原有方法修改执行逻辑 运行时插桩性能分析 Epic Epic 是一个虚拟机层面、以Java Method 为粒度的运行时Hook 框架支持Android 4.0- 9.0https://github.com/tiann/epic 使用 compile ‘me.weishu:epic:0.3.6’继承XC_MethodHook ,实现相应逻辑注入HookDexposedBridge.findAandHookMethod 优点 无侵入性 通用性强 兼容问题大开源方案不能带到线上环境 线上内存监控方案 常规方案 方案一 设定场景线上Dump : Debug.dumpHprofData() (假设线上app 以使用单个程序最大占用内存的80%时进行下线上内存Dump ) 方案一总结 Dump 文件太大Dump 文件大小跟程序使用时长有关和对象数正相关可裁剪上传失败率高分析困难配合一定策略有一定效果 ** 方案二 LeakCanary 带到线上预设泄露怀疑点发现泄露回传 方案二总结 不适合所有情况必须预设怀疑点分析比较耗时、也容易OOM LeakCanary原理 监控生命周期onDestroy 添加RefWatcher 检测二次确认断定发生内存泄露分析泄露找引用链由监控组件 分析组件组成 LeakCanary 定制 预设怀疑点 — 自动找怀疑点分析泄露链路慢 ---- 分析Retain size占用内存 大的对象分析OOM ---- 对象裁剪不全部加载到内存 线上监控完整方案 待机内存、重点模块内存、OOM率整体及重点模块GC次数、GC 时间增强的LeakCanary 自动化内存泄露分析
http://www.zqtcl.cn/news/920178/

相关文章:

  • 网络营销是营销的网络化吗广州推广seo
  • 茌平做网站推广网站刷链接怎么做的
  • 东莞网站优化推广Wordpress的根目录在哪
  • 备案的网站建设书是什么意思跨境电商代运营公司十强
  • 网站建设的功能要求wordpress typo3
  • 深圳网站平台前程无忧招聘网
  • 个人业余做网站怎么弄wordpress子主题修改
  • 深圳营销型网站建设优化做虚拟币网站需要什么手续
  • 青海市建设局网站西安网站seo推广
  • 广元做网站的公司合肥市建设网
  • 如何做网站不被查如何做网站内部优化
  • 网站建设用什么框架好做网站需要用到哪些开发软件
  • 网站建设工程师待遇wordpress 工具插件
  • 网站怎样做反向链接中国新闻社邮箱
  • 专业的外贸网站建设wordpress后台编辑
  • 德清建设银行网站2016wordpress淘宝客程序
  • 网站建设包括两个方面专业网站设计企业
  • dnf可以去哪个网站做代练导购网站 模板
  • 苏州网站开发培训深圳福田区口岸社区
  • 信息网站开发网络公司jsp实战网站开发视频
  • 做 理财网站深圳网站快速优化公司
  • 公司网站建设方案江门建设建筑网站
  • 网站是生成静态好还是动态好怎么找到域名做的那个网站
  • 婚纱网站页面设计上海商地网站建设公司
  • 模板手机网站建设多少钱百度搜索词排名
  • 怎么学做网站住房和城乡建设部网站一级建造师
  • 政务公开网惠州seo推广公司
  • 建设英文商城网站网站开发工具选择
  • 沈阳市浑南区城乡建设局网站淄博哪里有网站建设平台
  • 做不锈钢管网站口碑好的定制网站建设提供商