首页 文章 精选 留言 我的

精选列表

搜索[优化],共10000篇文章
优秀的个人博客,低调大师

移动App性能测评与优化1.3.1 Dalvik Heap内部机制

1.3.1 Dalvik Heap内部机制 为了弄清楚为什么DVM占着内存不释放,我们阅读了DVM分配内存部分的代码。位置在Android源码的dalvik/vm/alloc下,约255KB。分析的主要流程如下: 1)DVM使用mmap系统调用从系统分配大块内存作为Java Heap。根据系统机制,如果分类的内存尚未真正使用,就不计入PrivateDirty和Pss。例如图1-8所示,Heap Size/Alloc很多,但大部分是共享的,实际使用的较少。所以反映到PrivateDirty/Pss里的内存并不多。 图1-8 共享内存较多的进程 2)新建对象之后,由于要向对应的地址写入数据,内核开始真正分配该地址对应的4KB物理内存页面。 Alloc.cpp中,从第176行起的代码如图1-9所示。 图1-9 DVM虚拟机分配内存的代码 3)运行

优秀的个人博客,低调大师

移动App性能测评与优化1.4.3 zygote共享内存机制

1.4.3 zygote共享内存机制 上一小节介绍了应用各部分内存的含义,读者对dumpsys meminfo输出的大部分数据都能够有所理解。但dumpsys meminfo工具还会输出Heap Size/Alloc/Free部分的数值。我们知道这些数值是Dalvik虚拟机统计的内存堆的使用量,但这些数值是如何对应到Pss内存上的?比如Heap Alloc和Heap Pss往往相差不远,那是不是可将其看做基本等同的呢?下面我们试图解释这几项数值之间的关系。 由于虚拟机运行时并不区分某个对象实例是Android框架共享的还是应用独有的,Heap Alloc统计的是由虚拟机分配的所有应用实例的内存,所以会将应用从zygote共享的部分也算进去,于是Heap Alloc值总是比实际物理内存使用值要大。 Heap Alloc虽然反映了Java代

优秀的个人博客,低调大师

Android应用性能优化最佳实践.2.4 避免过度绘制

2.4 避免过度绘制 过度绘制(Overdraw)是指在屏幕上的某个像素在同一帧的时间内被绘制了多次。在多层次重叠的UI结构(如带背景的TextView)中,如果不可见的UI也在做绘制的操作,就会导致某些像素区域被绘制了多次,从而浪费多余的CPU以及GPU资源。 当设计上追求更华丽的视觉效果时,我们很容易陷入采用复杂的多层次重叠视图来实现这种视觉效果的怪圈。这很容易导致大量的性能问题,为了获得最佳性能,必须尽量减少Overdraw情况发生。 我们一般在XML布局和自定义控件中绘制,因此可以看出导致过度绘制的主要原因是: XML布局->控件有重叠且都有设置背景 View自绘-> View.OnDraw里面同一个区域被绘制多次 2.4.1 过度绘制检测工具 要知道是否有过度绘制的情况,可以通过手机设置中的开发者选项,打开Show GPU

优秀的个人博客,低调大师

Android应用性能优化最佳实践.2.7 提升动画性能

2.7 提升动画性能 在打造优秀体验的应用和实现酷炫效果的过程中,动画是不可或缺的重要组成部分。Android平台提供了三个动画框架:帧动画(Frame Animation)、补间动画(Tween Animation)和属性动画(Property Animation)。属性动画在Android 3.0开始支持,开发者使用这些动画框架来实现各种动画效果,这三个框架都有其优势和局限性,要深入了解就需要明白它们的实现原理。 属性动画只有Android API 11(Android 3.0)以上才支持,如果使用11以下的SDK,请导入NineOldAndroids动画库,用法完全一致。 虽然通过动画可以实现很多酷炫的动画,但带来的性能开销也有不同程度的影响。在实现动画的过程中,主要从以下三个纬度来对比性能: 流畅度:流畅度是动画的核心,控制每一帧

优秀的个人博客,低调大师

使用DataX同步MaxCompute数据到TableStore(原OTS)优化指南

概述 现在越来越多的技术架构下会组合使用MaxCompute和TableStore,用MaxCompute作大数据分析,计算的结果会导出到TableStore提供在线访问。MaxCompute提供海量数据计算的能力,而TableStore提供海量数据高并发低延迟读写的能力。 将MaxCompute内数据导出至TableStore,目前可选的几种主要途径包括: 自己编写工具:使用MaxCompute SDK通过Tunnel读取表数据,再通过TableStoreSDK再写入数据。 DataX:自己在服务器上托管执行DataX任务。 使用数据集成服务:其系统底层也是DataX,额外提供了服务化以及分布式的能力。 其中第二种是我们最常推荐给用户做临时的数据导出使用的,如果没有需要对数据做特殊处理的需求,我们一般不推荐第一种途径。 DataX在阿里集团

资源下载

更多资源
Mario

Mario

马里奥是站在游戏界顶峰的超人气多面角色。马里奥靠吃蘑菇成长,特征是大鼻子、头戴帽子、身穿背带裤,还留着胡子。与他的双胞胎兄弟路易基一起,长年担任任天堂的招牌角色。

Nacos

Nacos

Nacos /nɑ:kəʊs/ 是 Dynamic Naming and Configuration Service 的首字母简称,一个易于构建 AI Agent 应用的动态服务发现、配置管理和AI智能体管理平台。Nacos 致力于帮助您发现、配置和管理微服务及AI智能体应用。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据、流量管理。Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。

Spring

Spring

Spring框架(Spring Framework)是由Rod Johnson于2002年提出的开源Java企业级应用框架,旨在通过使用JavaBean替代传统EJB实现方式降低企业级编程开发的复杂性。该框架基于简单性、可测试性和松耦合性设计理念,提供核心容器、应用上下文、数据访问集成等模块,支持整合Hibernate、Struts等第三方框架,其适用范围不仅限于服务器端开发,绝大多数Java应用均可从中受益。

Sublime Text

Sublime Text

Sublime Text具有漂亮的用户界面和强大的功能,例如代码缩略图,Python的插件,代码段等。还可自定义键绑定,菜单和工具栏。Sublime Text 的主要功能包括:拼写检查,书签,完整的 Python API , Goto 功能,即时项目切换,多选择,多窗口等等。Sublime Text 是一个跨平台的编辑器,同时支持Windows、Linux、Mac OS X等操作系统。

用户登录
用户注册