Performance: Blank app has frame drop on Android
还没有人认领这个 Issue。
- 主要语言
- C++
- 星标
- 127k
- 派生
- 25.3k
- 平均合并
- 1 天 23 小时
- 30 天内合并 PR
- 4
描述
Description
https://github.com/user-attachments/assets/f6b9aae3-5405-43cd-937a-193e022426e2
Steps to reproduce
🐞 Bug Report: Empty Project Drops Below 60 FPS on Interaction
📝 Description
Even with a completely empty React Native project, performance drops significantly when interacting with the screen (e.g., touching anywhere). The frame rate quickly falls below 60 FPS, even though there’s no content or rendering complexity.
📱 Reproduction Steps
1. Create a new React Native project (e.g., using npx react-native init TestApp)
2. Use the following code in App.js:
import React from 'react';
import { View } from 'react-native';
export default function App() {
return (
<View style={{ flex: 1 , alignItems:'center', justifyContent:'center', backgroundColor:'pink'}} />
);
}
3. Run the app on a physical device
4. Touch anywhere on the screen
🧪 Expected Behavior
Frame rate should remain at 60 FPS since there’s no content or computation in the app.
❗ Actual Behavior
Frame rate drops immediately after interaction. It feels sluggish even though the app is empty.
https://github.com/user-attachments/assets/f4b65f3f-7475-45d5-a627-dc1041e7d1e4
React Native Version
0.77.2
Affected Platforms
Runtime - Android
Output of npx @react-native-community/cli info
info Fetching system and libraries information...
System:
OS: macOS 15.2
CPU: (8) arm64 Apple M1 Pro
Memory: 647.45 MB / 32.00 GB
Shell:
version: "5.9"
path: /bin/zsh
Binaries:
Node:
version: 20.18.1
path: ~/.nvm/versions/node/v20.18.1/bin/node
Yarn:
version: 1.22.22
path: ~/.nvm/versions/node/v20.18.1/bin/yarn
npm:
version: 10.8.2
path: ~/.nvm/versions/node/v20.18.1/bin/npm
Watchman:
version: 2025.04.28.00
path: /opt/homebrew/bin/watchman
Managers:
CocoaPods:
version: 1.16.2
path: /Users/brian/.rbenv/shims/pod
SDKs:
iOS SDK:
Platforms:
- DriverKit 24.2
- iOS 18.2
- macOS 15.2
- tvOS 18.2
- visionOS 2.2
- watchOS 11.2
Android SDK: Not Found
IDEs:
Android Studio: 2022.1 AI-221.6008.13.2211.9619390
Xcode:
version: 16.2/16C5032a
path: /usr/bin/xcodebuild
Languages:
Java:
version: 24.0.1
path: /usr/bin/javac
Ruby:
version: 2.7.6
path: /Users/brian/.rbenv/shims/ruby
npmPackages:
"@react-native-community/cli":
installed: 16.0.2
wanted: 16.0.2
react:
installed: 18.3.1
wanted: 18.3.1
react-native:
installed: 0.77.2
wanted: 0.77.2
react-native-macos: Not Found
npmGlobalPackages:
"*react-native*": Not Found
Android:
hermesEnabled: true
newArchEnabled: true
iOS:
hermesEnabled: true
newArchEnabled: true
info React Native v0.80.0 is now available (your project is running on v0.77.2).
info Changelog: https://github.com/facebook/react-native/releases/tag/v0.80.0
info Diff: https://react-native-community.github.io/upgrade-helper/?from=0.77.2&to=0.80.0
info For more info, check out "https://reactnative.dev/docs/upgrading?os=macos".
Stacktrace or Logs
info Fetching system and libraries information...
System:
OS: macOS 15.2
CPU: (8) arm64 Apple M1 Pro
Memory: 647.45 MB / 32.00 GB
Shell:
version: "5.9"
path: /bin/zsh
Binaries:
Node:
version: 20.18.1
path: ~/.nvm/versions/node/v20.18.1/bin/node
Yarn:
version: 1.22.22
path: ~/.nvm/versions/node/v20.18.1/bin/yarn
npm:
version: 10.8.2
path: ~/.nvm/versions/node/v20.18.1/bin/npm
Watchman:
version: 2025.04.28.00
path: /opt/homebrew/bin/watchman
Managers:
CocoaPods:
version: 1.16.2
path: /Users/brian/.rbenv/shims/pod
SDKs:
iOS SDK:
Platforms:
- DriverKit 24.2
- iOS 18.2
- macOS 15.2
- tvOS 18.2
- visionOS 2.2
- watchOS 11.2
Android SDK: Not Found
IDEs:
Android Studio: 2022.1 AI-221.6008.13.2211.9619390
Xcode:
version: 16.2/16C5032a
path: /usr/bin/xcodebuild
Languages:
Java:
version: 24.0.1
path: /usr/bin/javac
Ruby:
version: 2.7.6
path: /Users/brian/.rbenv/shims/ruby
npmPackages:
"@react-native-community/cli":
installed: 16.0.2
wanted: 16.0.2
react:
installed: 18.3.1
wanted: 18.3.1
react-native:
installed: 0.77.2
wanted: 0.77.2
react-native-macos: Not Found
npmGlobalPackages:
"*react-native*": Not Found
Android:
hermesEnabled: true
newArchEnabled: true
iOS:
hermesEnabled: true
newArchEnabled: true
info React Native v0.80.0 is now available (your project is running on v0.77.2).
info Changelog: https://github.com/facebook/react-native/releases/tag/v0.80.0
info Diff: https://react-native-community.github.io/upgrade-helper/?from=0.77.2&to=0.80.0
info For more info, check out "https://reactnative.dev/docs/upgrading?os=macos".
MANDATORY Reproducer
.
Screenshots and Videos
No response
贡献指南
从这里开始
- 先读完整个 Issue,再读项目的贡献指南。
- 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
- Fork 仓库,在一个分支上完成修改。
- 提交 Pull Request,并在描述里引用这个 Issue 编号。
调研方向
首先,使用 App.js 示例,在启用 Hermes 和新架构的情况下,将空的 React Native 0.77.2 应用复现到实体 Android 设备上。将交互性能与提供的视频和环境详细信息进行比较;当确定了可复现的原因,并在触摸交互期间恢复稳定的 60 FPS 后,即视为完成。
由索引模型根据 Issue 内容生成。
评估
- 技术栈
- android, javascript, react-native
- 领域
- mobile, performance
- Issue 类型
- 缺陷
- 难度
- 4/5
- 预计耗时
- 3-5 天
- 活跃度
- 冷清
- 描述清晰度
- 需要澄清
- 新手友好度
- 42/100