as

Settings
Sign out
Notifications
Alexa
亚马逊应用商店
Ring
AWS
文档
Support
Contact Us
My Cases
新手入门
设计和开发
应用发布
参考
支持
跳转到主要内容
线程状态可视化让您可以将线程在应用生命周期中所处状态可视化。它可以帮助您进行故障排除,并优化JavaScript (JS) 应用性能。 要有效地使用线程状态可视化,请遵循此页面上的指南。

了解线程状态

线程可以各种状态存在,例如Running(正在运行)、Runnable(可运行)、Runnable (Preempted)(可运行(被抢占))、Sleeping(休眠)、Uninterruptible Sleep(不间断休眠)、Stopped(已停止)、Idle(空闲)和Exit(退出)。有关每种状态的确切定义,请参阅监控和记录您的应用性能中的“线程状态”。

确定性能问题的原因

线程状态可视化可以提供有关应用性能问题的见解,例如延迟增加、无响应、崩溃和行为不一致。下表列出了可能导致性能问题的原因,您可以根据线程状态信息进行确定。

使用Vega Studio性能扩展

Vega Studio性能扩展在“Activity Monitor”和“Memory Monitor”的“Recording”(记录)视图中提供线程状态可视化。要解决JS应用中的性能问题,请完成以下步骤:
  1. 在Activity Monitor中开始记录。
  2. 在应用中再现有问题的行为。
  3. 停止录制以生成Recording视图,其中包括带有线程状态信息的Traces(跟踪)视图。

分析线程状态数据

要确定应用性能问题,请执行以下操作:
  1. 在Traces视图中分析线程状态数据。
  2. 检查线程状态数据是否与前面提到的任何原因相对应:线程长时间运行、CPU使用率过高或CPU争用。

使用案例

以下示例显示线程状态可视化如何帮助用户排除故障和优化应用性能。

使用案例1:排除由于算法效率低下而导致的线程长时间运行故障

在测试VegaVideoApp时,您在调出主屏幕或任何详情页面时遇到了响应不佳的问题。 为了确定问题,您再现了应用中有问题的行为,同时在Activity Monitor中启动了记录。当记录停止时,Activity Monitor会生成一个Recording视图,包括带有线程状态信息的Traces视图。您检查了Traces,其中显示JS线程运行了长达5秒钟。这表明由于算法效率低下,线程长时间运行。 屏幕截图,示出了线程状态可视化,其中揭示了JS线程长时间运行问题。 您检查了CPU分析器火焰图,由于getClassics方法,其中DetailsScreen花费了5秒钟。 屏幕截图,示出了火焰图中将getClassics方法标识为性能瓶颈。 在重新审视应用代码时,您发现在对数据进行排序和筛选时代码效率低下,从而导致性能延迟问题。
要解决这个问题,您可以删除不必要的嵌套循环。然后,重新访问“Traces”视图以验证您的应用性能是否有所改善。 屏幕截图,示出了删除低效代码后线程状态显示性能改善的情况。

使用案例2:解决滚动应用中CPU使用率过高的问题

使用React Native Flatlist组件(仅提供英文版)创建一个简单的滚动应用,用不同的颜色显示200行。使用“Activity Monitor”,您在滚动期间观察到线程状态视图中频繁出现“正在运行”状态,这表明CPU使用率过高。“CPU分析器火焰图”也显示出高活动性,这表明“Flatlist”组件的运行效率低下。 屏幕截图,示出了CPU使用率过高,这是在FlatList滚动性能期间检测到的。 以下示例代码显示了如何在应用中添加“Flatlist”组件。
为了解决性能问题,可以用Shopify的Flashlist组件替换“Flatlist”组件,前者可提高滚动场景中的性能。
重新测试应用的性能,并验证线程状态视图中的“Running”状态的数量是否有所减少。“CPU分析器火焰图”还应显示活动减少。 屏幕截图,示出了切换到FlashList组件如何提高性能。 要了解“Flashlist”相较于“Flatlist”的优势,请参阅最佳实践。

相关主题


最后修改于 2026年10月27日