[Unite2018] その最適化、本当に最適ですか!? ~正しい最適化を行うためのテクニック~
公式サイト
http://events.unity3d.jp/unitetokyo2018/session-lineup.html#session32
講演者
Valentin Simonov (Unity Technologies Field Engineer)
SlideShare
概要
- メモリの種類について
- Dirty Memoryを最小限に抑えるべし
- 最適化ツールの紹介
内容
- メモリ消費の管理
- ツールごとに値が様々
- what kind of memory?
- RAM(物理メモリ)
- 物理的なメモリ
- 上限を超えられない
- Virtual Memory(VM)
- Resident Memory
- VMの一部
- 使用せず、確保するだけ
- Clean and Dirty Memory
- Clean Memory
- readonlyなメモリ領域
- binaryファイルなど
- readonlyなメモリ領域
- Dirty Memory
- そのた
- そのた
- Clean Memory
- Graphics Memory(VRAM)
- GPUとCPUが共有する物理メモリ
- ほとんどがResident or Dirty memory
- Malloc Heap
- Swapped(compressed) Memory
- 圧縮されていないDirty Memory
- 圧縮されたDirty Memory
- Native(Unity) Memory
- Native Plugin
- 独自のMalloc Heap
- 独自のMalloc Heap
- Mono Heap
- NMの一部
- .NETバーチャルマシンの一部
- 連続したものではなく、断続的なもの
- iOSメモリ管理
- Tools
- Unity Profiler
- 内部ツール
- Simple View
- Mono(used)
- Mono Heapサイズ(ピンクと緑の総和)
- Mono(total)
- Mono Heapに対してcommitされた総量
- GfxDriver
- 2Dの総量 – renderターゲット
- FMOD
- audioがリクエストしたサイズの総量
- 他の値は使い物になっていない
- Mono(used)
- Detailed View
- Native Memory上のオブジェクト名
- Native Memory上でアセットをどれくらい消費しているか
- Memory Profiler
- Memory Profiler Extension
- Github
- Mono Heapのブロックを確認できる
- Github
- Xcode Debug View
- メモリ管理
- Dirty Memory + Swapped Memoryだと思われる
- 黄色いゾーンに入ってきたとき、終了される確率が高まる
- メモリ管理
- VM Tracker
- アプリケーションのメモリの消費量
- 扱いが難しい
- www dcのカンファレンスを見る
- 他のuniteの講演を見る
- Dirty Memory/Graphics Drive/Mono Heap/Malloc Heapなどの確認が可能
- いつ、なぜの確認ができない
- Allocations Instrument
- Unity Profiler