Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
趣味でつくる アバター×アバター マッチングアプリ~Performanceチューニング編~
Search
BOXP
June 12, 2019
Technology
2
1.7k
趣味でつくる アバター×アバター マッチングアプリ~Performanceチューニング編~
VRCLT #2 用です
BOXP
June 12, 2019
Tweet
Share
More Decks by BOXP
See All by BOXP
Cluster Creator Kitに入門してみた
boxp
0
83
LookingGlassPortraitあそんでみた
boxp
0
57
肉体を捨てた話
boxp
0
79
A story about releasing a online pairing service for avatars living in virtual worlds
boxp
1
350
VketのブースにVRoid製うちのこを召喚してみた
boxp
0
200
Hito Hub 2.0
boxp
0
1.3k
バーチャルマーケット3に ポスターを貼ってみた件
boxp
0
1.6k
趣味でGOOGLE KUBERNETES ENGINEを試したら 財布が薄くなったはなし
boxp
0
1.4k
趣味でつくる アバター×アバター マッチングアプリをリリースした話
boxp
0
120
Other Decks in Technology
See All in Technology
複雑さを受け入れるか、拒むか? - 事業成長とともに育ったモノリスを前に私が考えたこと #RSGT2026
murabayashi
0
890
あの夜、私たちは「人間」に戻った。 ── 災害ユートピア、贈与、そしてアジャイルの再構築 / 20260108 Hiromitsu Akiba
shift_evolve
PRO
0
330
田舎で20年スクラム(後編):一個人が企業で長期戦アジャイルに挑む意味
chinmo
1
690
20251203_AIxIoTビジネス共創ラボ_第4回勉強会_BP山崎.pdf
iotcomjpadmin
0
170
自己管理型チームと個人のセルフマネジメント 〜モチベーション編〜
kakehashi
PRO
5
930
2025年のデザインシステムとAI 活用を振り返る
leveragestech
0
660
小さく、早く、可能性を多産する。生成AIプロジェクト / prAIrie-dog
visional_engineering_and_design
0
310
I tried making a solo advent calendar!
zzzzico
0
120
AWS re:Invent 2025 を振り返る
kazzpapa3
2
110
[Data & AI Summit '25 Fall] AIでデータ活用を進化させる!Google Cloudで作るデータ活用の未来
kirimaru
0
4.2k
Next.js 16の新機能 Cache Components について
sutetotanuki
0
210
2025-12-27 Claude CodeでPRレビュー対応を効率化する@機械学習社会実装勉強会第54回
nakamasato
4
1.4k
Featured
See All Featured
Why Your Marketing Sucks and What You Can Do About It - Sophie Logan
marketingsoph
0
54
Faster Mobile Websites
deanohume
310
31k
A brief & incomplete history of UX Design for the World Wide Web: 1989–2019
jct
1
270
What the history of the web can teach us about the future of AI
inesmontani
PRO
0
390
Principles of Awesome APIs and How to Build Them.
keavy
127
17k
New Earth Scene 8
popppiees
0
1.3k
How Fast Is Fast Enough? [PerfNow 2025]
tammyeverts
3
420
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
254
22k
Getting science done with accelerated Python computing platforms
jacobtomlinson
0
88
Producing Creativity
orderedlist
PRO
348
40k
Are puppies a ranking factor?
jonoalderson
0
2.6k
SEO Brein meetup: CTRL+C is not how to scale international SEO
lindahogenes
0
2.3k
Transcript
趣味でつくる アバター×アバター マッチングアプリ ~Performanceチューニング編~ BOXP
自己紹介 • 一箱さん (の体を借りたBOXP) • 某Web企業でソフトウェアエン ジニアをしています • 好きなLispはClojureです
None
製作中のアプリ • VRChat、Virtual Castなどから 好みのアバターを自動で探して くれるサービス • IPhone・Android向けWebアプリ としてリリース予定 •
VRじゃなくてごめんなさい • 所謂PWA(Progressive Web Apps)を目指して製作中
なぜWeb? • 無名のアプリなので インストールの手間があるとその まま直帰してしまう… 多くの人に触ってほしい • このスライドも社内勉強会の資料 を再編集したもの 実験的な技術を試して
業務に活かしたい
なぜWeb? • 無名のアプリなので インストールの手間があるとその まま直帰してしまう… 多くの人に触ってほしい • このスライドも社内勉強会の資料 を再編集したもの 実験的な技術を試して
業務に活かしたい
とは言え インストールの手間がなくても Webページがもっさりしていると 使ってもらえない
もっさりしないために Hito Hubで何をしたか
状況に応じて 必要なパフォーマンス を満たす
Webアプリ 4つの側面 (RAILモデ ル) • Response: ユーザーの入力に対する応答中の状態 • Animation: アニメーション再生中の状態
• Idle: ユーザーの入力を待機している状態 • Load: コンテンツ読み込み中の状態 引用元: RAIL モデルでパフォーマンスを計測する https://developers.google.com/web/fundamentals/performance/rail
快適な パフォーマンス の目安 •100ミリ秒以内の応答 •これよりも遅いと操作と反応のズレを感じる Response •10ミリ秒以内に画面をレンダリング •1000ms / 60fps
- ブラウザによるレンダリング時間 (約6ms) =約10ms Animation •アイドル時間を利用したタスク分担 •100ミリ秒以上かかる処理はアイドル時間まで後回 し •ユーザー入力へのレスポンスが最優先 Idle •読み込みは1000ミリ秒以内に •1000ミリ秒より長いとユーザーの集中力が切れて しまう Load ※Google調べ
Hito Hubですべて満たすまで 最適化してみました
全ての入力に対して 100ms以内に応答する 100ms以内に応答が間に合わ ない場合は別の応答を返す • Rippleを表示させるなど 応答処理と他の処理を同時に 実行させない • リソースの取得などは別スレッド
(WebWorkerなど)で行うか後回しに する Response
アニメーションを60fps で動かす アニメーションが必要なカードだけ別 レイヤーに • will-change: transform;スタイルによって別レ イヤーへ • 重ね合わせによるピクセルの計算をスキッ
プできる 透過・座標移動のみでアニメーション を実現させる • transform,opacityスタイルを使う Animation
読み込み時間を 1秒以内に Load JavaScriptファイルは分割して 必要な分だけロードさせる • 追加のJavaScriptファイルが必要なと きにはじめてロードする 他の画面に必要なファイルを prefetchしておく
• WebWorkerを使って画面の処理を 邪魔せず先読みしておく
最適化の結果
None
最適化の甲斐あって なんとかサクサク動くよう になった
~Fin~
最後に告知的なもの
7月末までにリリース予定!
Thanks!