首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

【Android 性能优化】应用启动优化 ( 启动优化项目 | 界面启动时间 | 启动优化项目 | 方法追踪 MethodTracing )

文章目录 一、 界面启动时间 二、 启动优化项目 三、 方法追踪 一、 界面启动时间 ---- 在 【Android 性能优化】应用启动优化 ( 启动白屏问题 | 应用启动时间测量 | 冷启动 | 热启动...| 应用启动时间计算源码分析 ) __ 四、 APP 启动时间计算 博客中简要介绍了相关的启动时间 ; 下面是执行 adb shell am start -W 包名/完整 Activity 类名 命令...相加等于 TotalTime 的时长 ; 二、 启动优化项目 ---- 在 Launcher 应用点击图标后 , 启动应用 , 系统为应用开启进程 , 分配内存的步骤是无法干预的 , 开发者能做启动优化的地方只有两个位置..., 一个是 Application 的 onCreate 方法 , 另一个是 Activity 的 onCreate 方法 ; 针对上述的启动时间 , 可优化时间是 TotalTime , 和 ThisTime..., 分别对应应用启动时间 , 和界面显示时间 ; 1 .

1.3K10

Emacs 启动时间优化实践

最近在知乎上回答了一个问题请问你的emacs启动需要多久?[1],之前一直没怎么花精力去优化启动时间,虽然知道一些理论,但纸上得来终觉浅,于是动手实践。...截至发表本文前,优化后的配置运行了三周多,体验和之前无异。 目标 Emacs 中提供了一个函数来记录启动时长,即 emacs-init-time ,后文也用这个时间作为优化目标。...emacs -Q -nw M-x emacs-init-time 0.005363 seconds 零配置下启动时间,是优化的终极值。...比如: • evil/evil-leader/smex 为 2 • autorevert/so-long/window-numbering 为 5 通过这一步,可以 极大 减少启动时间,也是本次优化最为耗时的部分...,但熟练用户重启 Emacs 的机率比较小,一般都是 server 模式常驻的,所以启动慢的问题对他们来说不严重,但是对于新手或其他编辑器阵营的用户来说,启动慢就是一个大瑕疵,希望通过本文的实践能给读者提供优化思路的同时

95120
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    【Android 性能优化】应用启动优化 ( 启动白屏问题 | 应用启动时间测量 | 冷启动 | 热启动 | 应用启动时间计算源码分析 )

    文章目录 一、 APP 启动白屏 / 黑屏 二、 APP 启动速度测量 1. 通过 Logcat 日志查看应用启动时间 2....通过 adb 命令查看界面启动时间 三、 APP 冷启动与热启动 四、 APP 启动时间计算 一、 APP 启动白屏 / 黑屏 ---- 1 ....启动优化 : 这里的应用启动白屏 / 黑屏的时间 , 是可以通过优化解决的 , 如将 3 秒钟的启动白屏卡顿 , 优化为毫秒级 ; 二、 APP 启动速度测量 ---- 1....分析启动时间计算源码 : ① 计算启动时间源码 : APP 启动时间计算在 \frameworks\base\services\core\java\com\android\server\am\ActivityRecord.java...= SystemClock.uptimeMillis(); ② 系统分配内存时间 : 之后 Android 系统会给 APP 分配内存 , 这段时间是无法进行优化的 , 用户无法控制 , 占用时间由系统控制

    5.2K20

    Linux启动时间优化-内核和用户空间启动优化实践

    启动时间优化,分为两大部分,分别是内核部分和用户空间两大部分。...内核启动优化 在内核源码中自带了一个工具(scripts/bootgraph.pl)用于分析启动时间,这个工具生成output.svg。...用户空间启动优化 用户空间的优化依赖于bootchartd获取log,然后使用pybootchart.py进行分析。...nice: 从系统启动开始累计到当前时刻,nice值不为负的进程所占用的CPU时间。 system: 从系统启动开始累计到当前时刻,处于核心态的运行时间,不包括中断时间。...idle: 从系统启动开始累计到当前时刻,除IO等待时间以外的其它等待时间 iowait: 从系统启动开始累计到当前时刻,IO等待时间 irq: 从系统启动开始累计到当前时刻,硬中断时间 softirq

    82630

    iOS 优化App启动时间-启动详解(上篇)

    看了一下2016年的WWDC关于优化启动时间的PPT,有些感悟和总结,记录一下。...这篇文章你能学到什么 ---- 理论: 我们在进入mian()函数之前发生了什么事情 Mach -O的格式 虚拟内存基础知识 二进制Mach -O怎么被加载和准备 实用部分: 怎么去计算启动时间 优化启动时间...APP启动 ---- app启动的时候,内核会把app映射到一个新的内存空间,开始地址是随机的。 ? 然后内核通过Dyld来加载动态库。...一个app通常会加载400多个动态库,大多数是系统库,系统库大多数都被优化加载过程 ,所以优化的关注点在于内嵌动态库。...在可执行文件中调用main() Pre-main() 总结 pre-mian 阶段主要是Dyld做的工作: 深度加载依赖的动态库 修正DATA pages的指针 运行初始化工作 篇幅有限,这边总结了原理,下篇总结启动时间优化相关

    2.5K30

    Linux 启动时间优化实战,2.41 秒启动应用!

    点击查看大图 当前启动时间: 从上电到 LCD 显示第一帧图像:9.45 秒 1、优化编译器 ARM vs Thumb2 比较基于 ARM 或者 Thumb2 指令集编译出来的系统和应用。...优化后的结果: 文件系统:从 16.11 MB 缩小到 3.54 MB (-78 %)。 程序的加载和运行时间:缩短 150 ms。 整体启动时间:缩短 350 ms。...在空间的优化很大,但是在启动时间上的优化很小,这是因为 Linux 运行程序时只加载程序的必要部分。...优化后的结果: 即便禁用了 CONFIG_BLOCK 和 CONFIG_MMC 后,总启动时间仍多了 20ms。...最后,关于优化启动时间,有一些原则可以遵循: 请不要过早地进行优化。 从一些影响面最小的点开始优化。 从 rootfs 、kernel、bootloader 自上而下进行优化。 重点关注短板。

    3.3K50

    OC底层探索26-App启动时间优化OC底层探索26-App启动时间优化

    1.2 启动耗时查看 想要优化启动时间,就需要要知道启动时app都做了什么?通过添加环境变量可以打印出APP的启动时间分析(Edit Scheme -> Run -> Arguments) ?...1.3 提高main()函数之前的加载时间 1.动态库加载越多,启动越慢。 2.ObjC类,方法越多,启动越慢。 3.ObjC的+load越多,启动越慢。...4.1 查看pageFault 缺页异常(pageFault):读取到没有加载到物理内存中一页时触发;多次的pageFault也会造成启动时间的加长; iOS中每一页是16K大小,但是16K中,可能真正在启动时刻需要用到的...根据本文中4.3,修改项目oreder.file配置 demo下载 用在我自己的项目中,冷启动平均减少了50毫秒的启动时间。...其实还是不错~ 参考链接: AppOrderFiles iOS优化篇之App启动时间优化

    84230

    SpringBoot启动扩展应用:干预优化+加快启动时间(干货典藏版)

    若要优化 Spring Boot 程序的启动时间以缩短启动时间,可以考虑以下几个方面的优化措施: 减少依赖项: 评估项目的依赖项,并确保只引入必要的依赖。...启用编译时优化: 使用 Spring Boot 2.4 及更高版本,你可以通过启用编译时优化来加快启动时间。...这些是一些常见的优化措施,可以帮助缩短 Spring Boot 程序的启动时间。然而,优化的效果取决于具体的应用程序和场景,因此建议根据实际情况进行评估和测试。...通过这样的优化措施,我们可以减少应用程序的启动时间,特别是在大型项目中,当引入了大量不必要的依赖项时,效果会更为显著。...(四)启用编译时优化以缩短启动时间 启用编译时优化是一种有效的方法来加快 Spring Boot 应用程序的启动时间,特别是在使用 Spring Boot 2.4 及更高版本时。

    61110

    Android 优化——启动优化

    Android 优化目录 ---- App 启动方式 冷启动 App 没有启动过或 App 进程被杀,系统中不存在该 App 进程,此时启动即为冷启动。...温启动 介于冷启动和热启动之间,一般来说在以下两种情况下发生: 用户返回退出了 App,然后又启动。进程可能还在运行,但是 activity 需要重建。...启动时间检测 adb adb shell am start -W [应用报名]/[Activity的全路径名],得到三个时间值: ThisTime 一般和 TotalTime 相同,如果应用启动开启了一个过渡用的全透明页面预处理一些事情...TotalTime 应用启动时间,包括创建进程、Application 初始化、Activity 初始化到显示。 WaitTime 一般比 TotalTime 大,包括系统的耗时。...优化 布局优化 逻辑优化 必要且耗时的逻辑,考虑单独开线程执行 必要不耗时,按优先级高低依次执行 非必要的延迟初始化,等用到再初始化 针对冷启动的欺骗效果 使用 placeholder UI

    95630

    Android性能优化(一)—— 启动优化,冷启动,热启动,温启动

    启动APP此时,APP的启动将经历两个阶段: 第一阶段 1.加载并启动app;2.app启动后,第一时间为app显示一个空白的window;3.创建app进程 第二阶段 系统一旦创建了app...温启动有很多场景,例如: 用户按连续按返回退出了app,然后重新启动app; 由于系统收回了app的内存,然后重新启动app App启动优化 app启动优化的方向是冷启动。...空白window问题 app启动时,会短暂的一瞬间白屏,这个动图是我在Application的oncCreate里线程休眠1s实现。虽然如此,但是实际项目中确实存在启动时白屏时间过长的问题。...所以,要想解决白屏的问题,就要减少白屏显示的时间!也就是说要加快app初始化和首屏绘制的时间。...当onCreate任务越多耗时操作越多,初始化越慢,于是splashActivity启动时间就越晚,白屏时间就越长咯。

    20510

    启动优化

    启动优化 启动时间:从用户点击app图标开始到 AppDelegate 的didFinishLaunching 冷启动: 内存中不包含app相关数据的启动,一般我们可以通过重启手机来实现冷启动启动...: 是指杀掉app进程后,数据仍然存在时的启动 启动优化 -> T1 + T2 需要启动优化的部分 T1: pre-main阶段, 即main函数之前, 操作系统加载APP可执行文件到内存,执行一系列加载...didFinishLaunching方法中,主要是执行了各种业务,有很多并不是必须在这里立即执行的,这种业务我们可以采取延迟加载,防止影响启动时间。...,能延迟的延迟,能放后台初始化的放后台,尽量不要占用主线程的启动时间 优化代码逻辑,去除非必须的代码逻辑,减少每个流程的消耗时间 启动阶段能使用多线程来初始化的,就使用多线程 尽量使用纯代码来进行UI框架的搭建...因此,我们的优化思路就是:将所有启动时刻需要调用的方法,排列在一起,即放在一个页中,这样就从多个Page Fault变成了一个Page Fault。

    1.8K74

    启动优化

    启动分析 启动类型 Android Vitals可以对应用冷,热,温启动时间做监控。 通过adb shell am start -W ......; 综合来看,在卡顿优化中提到“systrace + 函数插桩” 似乎是比较理想的方案(可以参考课后作业),拿到整个启动流程的全景图之后,我们可以清楚地看到这段时间内系统、应用各个进程和线程的运行情况;...线程优化 减少CPU调度带来的波动,让应用的启动时间更加稳定 控制线程的数量,避免线程太多互争CPU资源,用统一线程池,根据机器性能来控制数量; 检查线程间的锁,特别是防止主线程出现长时间的空转(主线程因为锁而干等子线程任务...GC优化 启动过程,要尽量减少GC次数,避免造成主线程长时间的卡顿 //1....启动时间的扣除逻辑:闪屏,广告,新手引导的时间都应扣除 启动排除逻辑:Broadcast、Server 拉起,启动过程进入后台等都需排除掉 衡量启动速度快慢的标准 平均启动时间(体验差的用户可能被平均

    3.5K54

    iOS 优化 - 启动优化

    之前曾在iOS 优化-瘦身文章中提到过 iOS 优化将会是一个专题,今天就带来 iOS 优化系列的第二篇,主要介绍一下启动优化,即如何减少应用的启动时间。...App 启动过程 在优化之前,我们需要对 App 的完整启动过程有个了解,这样我们才能知道启动耗时分布的阶段、哪一个阶段可以被优化以及优化哪一个阶段 ROI 最高。...iPhone 上是 400ms,iPad 上是 500ms,苹果建议启动时间最好不要超过启动动画的时间,并且启动时间超过 20s 将会被系统的看门狗机制直接杀死。...同时在专项优化启动时间后,也要制定相应的措施去防止劣化。 Let's be CoderStar!...参考资料 reducing-your-app-s-launch-time[6] 58 同城 App 性能治理实践-iOS 启动时间优化 iOS 优化篇 - 启动优化之 Clang 插桩实现二进制重排[7

    3.9K20

    启动优化

    前言 之前有读者说到关于Android性能优化,性能优化包括很多方面,比如: 启动优化、布局优化、内存优化、卡顿优化、网络优化、数据库优化、内存泄漏优化、包体积优化等等。...比如返回Home后,又继续使用其他的APP,时间久了或者打开的应用多了,之前应用的Activity有可能被回收了,但是进程还在。...优化点 三种启动方式中,冷启动经历的时间最长,也是走完了最完整的启动流程,所以我们再次分析下冷启动启动流程,看看有哪些可以优化的点: Launcher startActivity AMS startActivity...优化方案 1)消除启动时的白屏/黑屏 App启动的时候会有一个白屏/黑屏时间,我们可以通过设置windowBackground属性来给启动的Activity提供一个drawable,这样就给用户一个快递启动的假象了...7)避免布局嵌套 如果启动页和主页的布局比较复杂,也会影响我们的启动时间,所以注意我们的布局,多用merge,include,constraintlayout等,特别是多层嵌套问题。

    93730

    全志 Linux 系统启动优化 启动优化速度方式 优化启动流程 优化uboot 优化kernel等

    . 3 Tina启动速度优化 3.1 开启Tina启动速度优化. 3.2 实验结果 4 参考资料 1 概述 编写目的: 介绍TinaLinux下启动速度优化使用方法。...2.3.1.1 非安全启动. boot0可优化的地方不多,可以做的是: 关闭串口输出。 减少检测按键和检测串口的等待时间。 加载uboot的时候,不要先加载后搬运,直接加载到uboot的运行地址。...某些情况可以去掉,直接从boot0加载内核并启动, 可节省一些时间。...此操作会延缓到达OS/APP的时间,但如果产品定义/用户体验是以第一帧/声为准的话,则有较 大价值。 2.3.3 kernel启动优化. 通常来说,内核启动耗时较多,需要更深入的优化。...比较不同压缩方式的启动时间和flash占用情况,选择一种符合实际情况的。 此处给出某次测试结果供参考。实际优化的时候,需要重新测试,根据实际情况选择。

    3.6K30

    App 启动优化

    ,进行获取启动完成时间 Systrace 轻量级,开销小 直观反映CPU利用率 cpu time与 wall time - cpu time:代码消耗CPU时间(重点指标,也是优化方向) - wall...可见冷启动的必要条件是该APP进程不存在,这就意味着系统需要创建进程,APP需要初始化。在这三种启动方式中,冷启动耗时最长,对于冷启动优化也是最具挑战的。因此本文重点谈论的是对冷启动相关的优化。...在冷启动时,应用程序从头开始。在其他状态下,系统需要将正在运行的应用程序从后台运行到前台。我们建议您始终根据冷启动的假设进行优化。这样做也可以改善热启动和温启动的性能。...启动优化 透明主题优化 为了解决启动窗口白屏问题,许多开发者使用透明主题来解决这个问题,但是治标不治本。 虽然解决了上面这个问题,但是仍然有些不足。     <!...所以我们就可以在 Application 中记录启动时间

    1.4K10

    shardingjdbc启动优化

    一.Sharding-JDBC 启动优化 问题分析 最近在本地调试的时候发现,项目本地启动比较慢,对启动日志进行分析,Sharding-JDBC 在加载元数据的过程中中耗时 116 秒 ,占用了项目启动时间的一半...MAX_CONNECTIONS_SIZE_PER_QUERY("max.connections.size.per.query", String.valueOf(1), int.class) //...... } 那是不是把这个配置扩展一下就可以提高启动速度了...从这里来看启动问题解决了,同时也产生了疑问,为什么 max.connections.size.per.query 默认值设置为 1。...updateByID(1); updateByKey(1); } 所以最终得出结论目前状态下,测试环境、预发环境可对max.connections.size.per.query 进行配置,提高启动速度...总结 在分析启动问题的过程中对 Sharding-JDBC 查询过程进行了简单的了解,规避了线上可能引发的问题,同时也提醒了自己在改动一些配置时需要对配置所涉及的影响面进行充分评估后再进行改动。

    91020

    Spring Boot 干预优化+加快启动时间(干货典藏版)

    若要优化 Spring Boot 程序的启动时间以缩短启动时间,可以考虑以下几个方面的优化措施: 减少依赖项: 评估项目的依赖项,并确保只引入必要的依赖。...启用编译时优化: 使用 Spring Boot 2.4 及更高版本,你可以通过启用编译时优化来加快启动时间。...这些是一些常见的优化措施,可以帮助缩短 Spring Boot 程序的启动时间。然而,优化的效果取决于具体的应用程序和场景,因此建议根据实际情况进行评估和测试。...通过这样的优化措施,我们可以减少应用程序的启动时间,特别是在大型项目中,当引入了大量不必要的依赖项时,效果会更为显著。...(四)启用编译时优化以缩短启动时间 启用编译时优化是一种有效的方法来加快 Spring Boot 应用程序的启动时间,特别是在使用 Spring Boot 2.4 及更高版本时。

    1.5K10
    领券