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

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

启动时间优化,分为两大部分,分别是内核部分和用户空间两大部分。...内核启动优化 在内核源码中自带了一个工具(scripts/bootgraph.pl)用于分析启动时间,这个工具生成output.svg。...用户空间启动优化 用户空间的优化依赖于bootchartd获取log,然后使用pybootchart.py进行分析。...idle: 从系统启动开始累计到当前时刻,除IO等待时间以外的其它等待时间 iowait: 从系统启动开始累计到当前时刻,IO等待时间 irq: 从系统启动开始累计到当前时刻,硬中断时间 softirq...Linux启动从进入内核那一刻开始,到用户空间达到可用状态。 这个可用状态定义可能不一致,有的是进入shell,有的是弹出登陆框。但只要有一个固定的终点,就有了优化目标。

52730

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 自上而下进行优化。 重点关注短板。

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

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

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

1.2K10

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 模式常驻的,所以启动慢的问题对他们来说不严重,但是对于新手或其他编辑器阵营的用户来说,启动慢就是一个大瑕疵,希望通过本文的实践能给读者提供优化思路的同时

84920

【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 分配内存 , 这段时间是无法进行优化的 , 用户无法控制 , 占用时间由系统控制

4.9K20

arm linux启动过程_项目冷启动和热启动的区别

微处理器:LPC2114 编译环境:Keil MDK V4.10 思路: 常把单片机系统的复位分为冷启动和热启动。...所谓冷启动,也就是一般所说的上电复位,冷启动后片内外RAM的内容是随机的,通常是0x00或0xFF;单片机的热启动是通过外部电路给运行中的单片机的复位端一复位电平而实现的,也就是所说的按键复位或看门狗复位...常用的方法是:确定某内存单位为标志位(如0x40003FF4~0x40003FF7 RAM单元),启动时首先读该内存单元的内容,如果它等于一个特定的值(例如为0xAA55AA55),就认为是热启动,否则就是冷启动.../冷启动处理 unStartFlag=0xAA55AA55; } 然而实际调试中发现,无论是热启动还是冷启动,开机后所有内存单元的值都被复位为0,当然也实现不了热启动的要求。...通过看keil MDK自带的启动代码Startup.s,在这个启动代码中也并没有发现将整个RAM区域清零的语句。

2.1K30

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.4K30

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

2.2.4 bootchart bootchart是一个用于linux启动过程性能分析的开源软件工具,在系统启动过程自动收集CPU 占用率、进程等信息,并以图形方式显示分析结果,可用作指导优化系统启动过程...此操作会延缓到达OS/APP的时间,但如果产品定义/用户体验是以第一帧/声为准的话,则有较 大价值。 2.3.3 kernel启动优化. 通常来说,内核启动耗时较多,需要更深入的优化。...比较不同压缩方式的启动时间和flash占用情况,选择一种符合实际情况的。 此处给出某次测试结果供参考。实际优化的时候,需要重新测试,根据实际情况选择。...3 Tina启动速度优化 Tina中启动优化主要依靠宏CONFIG_BOOT_TIME_OPTIMIZATION来完成,该宏会进行如 下工作: 调整Linux内核镜像的压缩方式,调整rootfs的压缩方式...如下: Linux内核镜像压缩方式从GZIP换成LZO,优化> 0.2s。

2.9K30

ARM Linux 启动时的自解压过程 | Linux 内核

最近业余时间都在学习 Linux 内核和英语,或者是陪家人玩耍,没有投入太多的时间在文章。 今天起得比较早,就给大家翻译一篇 linus 的文章吧,大家可以感受一下大神的写作能力。...OK,Let's go. ---- ARM Linux 一般都使用压缩的内核,例如 zImage。 这样做有两个主要原因: 1、节省存放内核的闪存或其他存储介质的空间。...通常情况下,解压消耗的时间比从存储介质传输未压缩镜像的时间要短。 例如从 NAND Flash 加载内核,就是一种很典型的情况。 本文将对 ARM Linux 的自解压过程进行一个简单介绍。...2002 年,Russell King 就在 Booting ARM Linux 文档中定义了 Booloader 引导 Linux 内核的 ABI。...另外还需要额外的空间,是因为当内核最终启动时,它将从该地址中减去 0x4000(或 LPAE 的 0x5000),并将初始内核页表 (initial kernel page table) 存储在那里。

2.6K10

全志Tina Linux 启动优化

本文转载自全志V853在线文档:https://v853.docs.aw-ol.com/soft/tina_boottime/ Tina Linux 启动优化 启动速度是嵌入式产品一个重要的性能指标,...启动速度优化可提升产品的竞争力。对于某些系统来说,启动速度是硬性要求。...一般来说 boot0 占用的时间不多,基本不需要对其进行优化 Uboot启动优化 uboot 主要功能是引导内核、量产升级、电源管理、开机音乐/logo、fastboot刷机等。...OK kernel 启动优化 通常来说,内核启动耗时较多,需要更深入的优化。 kernel 压缩方式 比较不同压缩方式的启动时间和flash占用情况,选择一种符合实际情况的。...: Linux内核镜像压缩方式从GZIP换成LZO,优化 > 0.2s。

15510

进程启动时间监控(linux篇)

摘要:这次我们来谈谈如何采集一个进程的启动时间 以下内容使用go语言实现 linux 进程启动时间采集 方法一 直接读取/proc/{pid} 文件夹的时间戳方式(不准确但效率高),以下是方法一的代码,...= nil { return nil } proc.mtime = stat.ModTime().Unix() 方法二 使用(现在的时间-从系统启动到现在的时间) + 进程启动时距离系统启动时的时间间隔得到...import "C" import ( "fmt" "io/ioutil" "strconv" "strings" "time" ) var ( Uptime int64 // 系统启动时间戳...启动时,内核将该变量初始化为0,此后,每次时钟中断处理程序都会增加该变量的值。一秒内时钟中断的次数等于Hz,所以jiffies一秒内增加的值也就是Hz。...输出结果 [输出结果] 引用 go 获得进程启动时间的两种方法

4K10

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启动时间优化

77830

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

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

12410

Tina_Linux_启动优化_开发指南

文章目录 Tina_Linux_启动优化_开发指南 1 概述 2 启动速度优化简介 2.1 启动流程 2.2 测量方法 2.2.1 printk time 2.2.2 initcall_debug.... 3 Tina启动速度优化 3.1 开启Tina启动速度优化. 3.2 实验结果 4 参考资料 Tina_Linux_启动优化_开发指南 1 概述 编写目的: 介绍TinaLinux下启动速度优化使用方法...2.2.4 bootchart bootchart是一个用于linux启动过程性能分析的开源软件工具,在系统启动过程自动收集CPU 占用率、进程等信息,并以图形方式显示分析结果,可用作指导优化系统启动过程...3 Tina启动速度优化 Tina中启动优化主要依靠宏CONFIG_BOOT_TIME_OPTIMIZATION来完成,该宏会进行如 下工作: 调整Linux内核镜像的压缩方式,调整rootfs的压缩方式...如下: Linux内核镜像压缩方式从GZIP换成LZO,优化> 0.2s。

86260

Android 优化——启动优化

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

92930

启动优化

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

1.7K74

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.5K20

启动优化

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

3K54
领券