I / O预取可提高应用程序启动性能

I / O预取可提高应用程序启动性能

在当今的数字时代,用户期望应用程序具有响应能力并能够快速加载。 Android 11带有一项新功能IORap,可显着提高应用程序的启动性能。平均而言,跨多个设备的应用程序启动速度提高了5%以上,也称为冷启动。但是,某些应用程序显示启动时间快20%以上。用户无需任何开发人员应用程序更改即可获得此奖励性能。

作为领先的Android开发公司,我们一直在提供 原生android开发服务 这些年来我们的全球客户。我们拥有一支由经验最丰富的Android应用程序开发人员组成的团队,他们已经为不同行业的客户构建了Android应用程序。我们了解,启动时间慢的应用可能会很烦人,并且可能会让用户失望。因此,请牢记这一点,我们的应用开发者可以通过解决相关的启动问题来优化应用的启动时间。

现在让我们更深入地探讨有关I / O预取如何缩短应用程序启动时间的主题。

Android应用程序的IORap预取
IORap通过预测将需要哪些I / O并事先进行操作,大大减少了应用程序的启动时间。许多应用程序创业公司会花费大量时间,因为IO阻塞而导致IO请求队列未达到饱和状态。这不会使IO延迟最大化。在预取数据并压缩I / O之后,应用程序可以立即从页面缓存访问此数据,从而减少了应用程序启动延迟。

如果您需要正确诊断应用启动时间性能,则可以 雇用android应用开发人员 从我们这里,他们将跟踪指标,这些指标指示您的应用程序启动需要多长时间,并对其进行优化以实现最佳启动性能。

IORap如何工作?
IORap在设备上充当独立服务。它可以通过IPC与包管理器,活动管理器,perfetto服务等进行有效通信。

下图显示了IORap的完整体系结构:

步骤1:收集perfetto痕迹
IORap采用基于概要分析的策略来确定要预取的I / O数量。该知识是从perfetto跟踪中获得的,该跟踪记录了内核页面缓存页面从ftrace中的添加或删除。在应用程序的初始冷运行中,将进行perfetto跟踪以获取pagecache丢失事件。在应用启动时进行perfetto跟踪的开销可以忽略不计。

步骤2:生成I / O预取列表
第一步之后,IORap会在设备的空闲时间内根据性能跟踪生成预取列表。此预取列表包含应用程序启动时访问的文件信息,例如名称,长度,偏移量。 IORap通过perfetto跟踪评估mm_pagemap事件,并通过将inode反转为文件名将其结果(即inode,offset,length)转换为(name,offset,length)。然后,此数据存储在名为protobuf的文件的预取列表中。

步骤3:I / O预取
生成预取列表后,IORap然后为应用程序的后续运行预取相应的数据。在此阶段,不再需要进行perfetto跟踪,并且用户和开发人员无需执行任何操作。当用户点击应用程序图标或通过另一个通过Intent请求它的应用程序间接点击时,便完成了预取。现在您可以享受加速了。

步骤4:淘汰预取清单
预取列表不会永远持续下去,因为许多事件可能会导致预取列表过时。更新应用程序后,由于应用程序可能会更改并且先前的数据可能不准确,因此预取列表已过时。此外,dexopt服务可以在安装后优化应用程序。优化应用程序后,布局可能会有所不同,从而使预取列表过时。因此,此列表将被删除,新一轮将开始收集perfetto跟踪。

观察结果
可以看出,IORap使从低端到高端设备的各种设备受益。平均而言,IORap可以将启动时间缩短约26%。这对于启动期间具有大量I / O的应用程序非常有帮助。还已经观察到,IORap的性能受预取数据量的很大影响。同样,准确的跟踪持续时间对于IORap也非常重要。较短的跟踪持续时间会导致数据少于需要预取的数据,并且会降低性能。相反,较长的跟踪持续时间会导致比需要预取的数据更多的数据,这会导致在最坏条件下启动速度较慢。 IORap使用应用程序报告ReportFullyDrawn事件的时间戳来计算跟踪持续时间。对于未报告此事件的应用,将使用显示时间。因此,在适当的时候调用reportFullyDrawn回调可以提高IORap的性能。

由于我们专注于本机android开发服务,因此我们的应用程序开发人员构建了功能最强大,最高效,最轻便的Android应用程序,这些应用程序在几秒钟内即可启动。

结论
当应用程序完成启动时,可以通过调用ReportFullyDrawn回调来辅助IORap。 IORap主要有助于减少I / O阻止时间,因此请确保针对其他潜在的性能问题分析应用程序启动情况。

成为一流 Android应用开发公司,我们非常谨慎地开发一款具有超快性能的应用程序,并且只要用户点击该图标即可花很少的时间启动。

您需要做的就是从我们这里聘请在提供一流的本机Android应用程序开发服务方面拥有丰富经验和专业知识的Android应用程序开发人员。

常见问题
Q.1。您开发多少种应用程序?
Ans。 作为一家专业的Android应用开发公司,我们为所有业务领域的客户构建应用,包括实用,有趣&娱乐,旅行,金融,电子学习,房地产,医疗保健,社交网络,生产力,天气,商业,游戏和儿童’s apps, many more.

Q.2。您是否还在本机Android开发服务中包括应用程序维护?
Ans。 作为一家全周期的原生Android应用程序开发公司,从概念化到售后支持与维护,我们在开发的每个阶段都将为您提供支持。因此,对于您在使用Android应用程序时遇到的任何问题,只需从我们这里雇用Android应用程序开发人员,其余的工作将由他们负责。

Q.3。构建一个Android应用程序需要多少费用?
Ans。 开发成本将取决于其复杂性和您的项目要求。造成成本增加的其他因素包括使用的图形和动画,声音效果,设计,集成和功能,开发人员的经验水平等等。要了解项目的估计成本,请将您的项目要求发送给我们,我们会尽快与您联系。