应用冷启动时Binder Transaction操作过多

问题描述 投票:0回答:1

我目前正在致力于提高应用程序冷启动的性能。我使用 Android Studio Profiler 和 MacroBenchmark 库来捕获系统跟踪,然后使用 Perfetto 对其进行分析。系统跟踪表明,在绑定事务的bindApplication 中花费了大量时间。我尝试过调用堆栈采样,并在调试模式下运行系统跟踪,但 Android Studio 的 Profiler 中的“跳转到代码源”功能不起作用,并且调用堆栈 Java/Kotlin 不提供有关这些 binderTransaction 的任何信息。 Perfetto 的截图供您参考。enter image description here

android performance cold-start perfetto
1个回答
0
投票

Binder Transactions:它代表客户端和服务器之间的调用,在这种情况下,应用程序(客户端)通过binder transaction调用Android系统(服务器),服务器通过binder回复进行响应。确保应用程序在启动期间不会进行不必要的活页夹事务,因为它们会增加 CPU 争用的风险。如果可以,请将涉及活页夹调用的工作推迟到应用程序启动期之后。如果您必须进行活页夹交易,请确保它们花费的时间不会超过您设备的垂直同步刷新率。

有关更多详细信息,请参阅 Google Android 开发人员编写的文档

© www.soinside.com 2019 - 2024. All rights reserved.