Download free for 30 days
Sign in
Upload
Language (EN)
Support
Business
Mobile
Social Media
Marketing
Technology
Art & Photos
Career
Design
Education
Presentations & Public Speaking
Government & Nonprofit
Healthcare
Internet
Law
Leadership & Management
Automotive
Engineering
Software
Recruiting & HR
Retail
Sales
Services
Science
Small Business & Entrepreneurship
Food
Environment
Economy & Finance
Data & Analytics
Investor Relations
Sports
Spiritual
News & Politics
Travel
Self Improvement
Real Estate
Entertainment & Humor
Health & Medicine
Devices & Hardware
Lifestyle
Change Language
Language
English
Español
Português
Français
Deutsche
Cancel
Save
EN
Uploaded by
Takahiko Wada
PDF, PPTX
991 views
React Native performance optimization
2020.10.15 React Native Tech Blog LT #5
Engineering
◦
Read more
3
Save
Share
Embed
Embed presentation
Download
Download as PDF, PPTX
1
/ 34
2
/ 34
3
/ 34
4
/ 34
5
/ 34
6
/ 34
7
/ 34
8
/ 34
9
/ 34
10
/ 34
11
/ 34
12
/ 34
13
/ 34
14
/ 34
15
/ 34
16
/ 34
17
/ 34
18
/ 34
19
/ 34
20
/ 34
21
/ 34
22
/ 34
23
/ 34
24
/ 34
25
/ 34
26
/ 34
27
/ 34
28
/ 34
29
/ 34
30
/ 34
31
/ 34
32
/ 34
33
/ 34
34
/ 34
More Related Content
PDF
アプリエンジニアからクラウド専用のインフラエンジニアになってみて
by
Sato Shun
PDF
KubernetesでPHPを動かした話
by
gree_tech
PDF
PHP Version Up と AWS への移行
by
gree_tech
PPTX
インフラ構築とテストについて(ITインフラ業務自動化現状確認会)
by
Yosuke Hiraishi
PDF
Works of site reliability engineer
by
Shohei Kobayashi
PPTX
20190514 googlehomeandazure
by
ひかり 影中
PDF
コンテナ時代にインフラエンジニアは何をするのか
by
gree_tech
PDF
Scalaのコンパイル速度の話が聞きたいだろうし、するつもりだ
by
yoshiaki iwanaga
アプリエンジニアからクラウド専用のインフラエンジニアになってみて
by
Sato Shun
KubernetesでPHPを動かした話
by
gree_tech
PHP Version Up と AWS への移行
by
gree_tech
インフラ構築とテストについて(ITインフラ業務自動化現状確認会)
by
Yosuke Hiraishi
Works of site reliability engineer
by
Shohei Kobayashi
20190514 googlehomeandazure
by
ひかり 影中
コンテナ時代にインフラエンジニアは何をするのか
by
gree_tech
Scalaのコンパイル速度の話が聞きたいだろうし、するつもりだ
by
yoshiaki iwanaga
What's hot
PDF
2015-05-23 クラウドの運用になって インフラエンジニアは何が変わるのか?
by
Operation Lab, LLC.
PDF
PHPアプリの品質を(ある程度)保つために出来る事 〜組織編〜
by
Katsuhiro Miura
PDF
リーダブルコード勉強会 in 筑波大のアイスブレイク
by
Kouhei Sutou
PDF
phpcon2017 LT01 MDD
by
Masahiko Jinno
PDF
SEゼミ2015 - リーダブルコード勉強会のアイスブレイク
by
Kouhei Sutou
PDF
Yahoo! JAPANのコンテンツプラットフォームを支えるSpring Cloud Streamによるマイクロサービスアーキテクチャ #jsug #sf_52
by
Yahoo!デベロッパーネットワーク
PPTX
LancersのCakePHPバージョンアップ施策について
by
Shigemasa Akiyama
PPTX
OSS強化学習向けゲーム環境の動向
by
gree_tech
PPTX
比較サイトの検索改善(SPA から SSR に変換)
by
gree_tech
PPT
Springを使ったwebアプリにリファクタリングしよう
by
土岐 孝平
PPTX
JAWSUG金沢10 - 俺と「AWS外部から観測」
by
Masayuki KaToH
PPTX
Jsugプレゼン資料new
by
Wataru Kakizoe
PDF
インフラエンジニアの綺麗で優しい手順書の書き方
by
Shohei Koyama
PPTX
Spring I/O 2017での拡張のお話
by
Alisa Sasaki
PDF
20200923 miyazaki
by
beyond Co., Ltd.
PPTX
入門者の方向け Azure PlayFab の簡単な紹介
by
YutoNishine
PPTX
DevLOVE関西2016.2.5 地道にAWS構築自動化に取り組んでいるお話し
by
Akira Nagata
KEY
オブラブ冬合宿以降にやったことのふりかえり
by
Yasunobu Kawaguchi
PPTX
[SAPPORO CEDEC] サービスの効果を高めるグリー内製ツールの技術と紹介
by
gree_tech
PDF
あるインフラエンジニアの過去と未来
by
Tsubasa Hirota
2015-05-23 クラウドの運用になって インフラエンジニアは何が変わるのか?
by
Operation Lab, LLC.
PHPアプリの品質を(ある程度)保つために出来る事 〜組織編〜
by
Katsuhiro Miura
リーダブルコード勉強会 in 筑波大のアイスブレイク
by
Kouhei Sutou
phpcon2017 LT01 MDD
by
Masahiko Jinno
SEゼミ2015 - リーダブルコード勉強会のアイスブレイク
by
Kouhei Sutou
Yahoo! JAPANのコンテンツプラットフォームを支えるSpring Cloud Streamによるマイクロサービスアーキテクチャ #jsug #sf_52
by
Yahoo!デベロッパーネットワーク
LancersのCakePHPバージョンアップ施策について
by
Shigemasa Akiyama
OSS強化学習向けゲーム環境の動向
by
gree_tech
比較サイトの検索改善(SPA から SSR に変換)
by
gree_tech
Springを使ったwebアプリにリファクタリングしよう
by
土岐 孝平
JAWSUG金沢10 - 俺と「AWS外部から観測」
by
Masayuki KaToH
Jsugプレゼン資料new
by
Wataru Kakizoe
インフラエンジニアの綺麗で優しい手順書の書き方
by
Shohei Koyama
Spring I/O 2017での拡張のお話
by
Alisa Sasaki
20200923 miyazaki
by
beyond Co., Ltd.
入門者の方向け Azure PlayFab の簡単な紹介
by
YutoNishine
DevLOVE関西2016.2.5 地道にAWS構築自動化に取り組んでいるお話し
by
Akira Nagata
オブラブ冬合宿以降にやったことのふりかえり
by
Yasunobu Kawaguchi
[SAPPORO CEDEC] サービスの効果を高めるグリー内製ツールの技術と紹介
by
gree_tech
あるインフラエンジニアの過去と未来
by
Tsubasa Hirota
React Native performance optimization
1.
React Native パフォーマンス 最適化 ワダタカヒコ @takahi5
2.
和田崇彦(ワダタカヒコ) @takahi5 ● DeNA >
マリクル > 独立 ● React Nativeでアプリ開発 ● React NativeのUdemyコース を作ったり
3.
スポーツ観戦を楽しくするアプリ ● リアルタイム実況 ● 応援 ●
ギフティング 🎉 SpoLive
4.
今日話すこと パフォーマンス最適化
5.
起動に時間がか かる スクロールが カクカクする APIで情報取得 するのに 時間がかかる ボタンタップの 反応が悪い パフォーマンス最適化
6.
メインスレッド JSスレッド レンダリング state更新 更新対象の コンポーネント その他 パフォーマンス最適化
7.
メインスレッド JSスレッド レンダリング state更新 更新対象の コンポーネント その他
8.
メインスレッドとJSスレッド Main (Native) Thread JavaScript Thread Bridge UI ビジネス ロジック
9.
JS側が忙しくなりがち メインでできることはメインに Main (Native) Thread JavaScript Thread Bridge UI ビジネス ロジック 💦💪
10.
useNativeDriver Animatedでアニメーションしている場合 useNativeDriverオプションをtrueに
11.
useNativeDriver メイン (Native) JavaScript Bridge +1px +2px +3px
+4px メイン (Native) JavaScript Bridge 1秒間で +10px動かして🙏 OK👍 1秒間で+10pxだから... 次のフレームは〜 💦 useNativeDriver = false useNativeDriver = true
12.
メインスレッド JSスレッド レンダリング state更新 更新対象の コンポーネント その他 レンダリング回数を減らす
13.
レンダリング回数 = stateの更新回数 ×
(更新対象の)コンポーネント数
14.
実験: 親のstateが更新されるとどうなるのか? App state.count LargeItem MiddleItem SmallItem 関係ないstateの countを更新してみる
15.
結果: 全ての子が再レンダリング App state.count LargeItem MiddleItem SmallItem 更新 render render render
16.
メインスレッド JSスレッド レンダリング state更新 更新対象の コンポーネント その他 stateの更新を減らす
17.
stateの更新を減らす① 画面描画と関係ない変数はuseRefを利用
18.
stateの更新を減らす② そもそもの更新回数を減らす
19.
stateの更新回数を減らす - SpoLive事例 �� ⚽ 👍 💯 😊⚽👍💯 state更新 state更新 state更新 state更新 state更新
20.
メインスレッド JSスレッド レンダリング state更新 更新対象の コンポーネント その他 更新対象のコンポーネントを減らす
21.
memo化 (or PureComponent) propsに変化(*)がない場合は再レンダリングしない *浅い比較
22.
memo化(or PureComponent) で FlatListを最適化してみよう
23.
実験: FlatList ※FlastList自体は PureComponent 😊
24.
結果: FlatList render render render count 更新
25.
便利ツール: why-did-you-renderでチェック! renderItemが同じ名前だけど 別オブジェクトって判定されてるよ 👀 原因: アロー関数が都度生成されている
26.
useCallback で関数の再生成を防ぐ
27.
さらに... FlatListの子コンポーネントもmemo化しよう 子コンポーネントも memo化しておく
28.
SpoLive事例: memo化 Before After memo化 FlatList全体で 71.5ms
→ 1.7ms react-devtoolsにて計測
29.
メインスレッド JSスレッド レンダリング state更新 更新対象の コンポーネント その他 その他(罠?)
30.
Stackされた裏の画面が更新 フィード フォロー 更新
31.
FireStoreの通信処理自体が負荷に onSnapShot onSnapShot onSnapShot onSnapShot onSnapShot
32.
メインスレッド JSスレッド レンダリング state更新 更新対象の コンポーネント その他 ・useNativeDriver ・useRef ・そもそも更新減らす ・memo化 ・裏の画面 ・通信など まとめ
33.
最後に ● パフォーマンスが気になったらやりましょう ● 初めから最適化する必要はない ●
まず計測から
34.
PR スポーツファン(サッカー,ラグビーなど) の方、是非お試しを! エンジニアも募集中です! Udemyの React Native
+ Firebaseコース twitter(@takahi5)プロフ欄にクーポンあります!
Download