2.1K Views
May 08, 17
スライド概要
講演者:黒河 優介(ユニティ・テクノロジーズ・ジャパン合同会社)
こんな人におすすめ
・最適化したいが、何をしてよいかわからず困っている人
・効率的に最適化を行いたい人
受講者が得られる知見
・Unity Profilerに関するノウハウ
・最適化の目算、見積もりをする技術
リアルタイム3Dコンテンツを制作・運用するための世界的にリードするプラットフォームである「Unity」の日本国内における販売、サポート、コミュニティ活動、研究開発、教育支援を行っています。ゲーム開発者からアーティスト、建築家、自動車デザイナー、映画製作者など、さまざまなクリエイターがUnityを使い想像力を発揮しています。
Enterprise Consulting Developer Relation Manager/Engineer
• • • • •
• • • • TIPS
•
•
• • •
• • • •
• • • 80:20
• •
• • Unity • Profiler Profiler Unity Profiler
Unity Profiler • Editor CPU / GPU / Rendering / Memory / Audio / Physics / uNet / Video Player • Editor Android/iPhone
Unity Profiler
Unity Profiler
Unity Profiler
Unity Profiler
Unity Profiler
Android/iOS
Unity Profiler
• • • • •
• • C# ※ Unity
C# Unity • Unity • C# • Unity → (Mono Memory)
C# Unity
C# • C# • C# • Unity Reserve( • Unity • Texture, Mesh, Animation ) Garbage Collection C#
C# • Used • Editor • Reserved( • ) ) Reserved( Editor ) C# C#
Unity • Asset • Memory Profiler Detailed ( ) • Unity Technologies Editor •
Memory Profiler Detailed
Memory Profiler Detailed
Memory Profiler Detailed
Unity Memory Profiler https://bitbucket.org/Unity-Technologies/memoryprofiler
• C# • C# • • Unity • • •
• •
Debug.logger.logEnabled = false;
Timeline
• Memory Profiler Detailed
AssetBundle
• GC(Garbage Collection) • GC C# • GC • GC Profiler
GC
GC • C# • C# • • StringBuilder • Update
C#
Deep Profile
• 60FPS( 16.6 • 30FPS( 33.3 -> 60 ) 1 30 ) 1
• • •
C# • • Unity • GameObject • Unity UI 3000
C#
UI
GameObject
• C# • • • • • • • • Layer Collision Matrix MeshCollider 1 Time Physics FixedTimeStep BoxCollider
• UI • • uGUI Animation Canvas
• • Batch • • • Shader Set Pass (Overdraw )
• Unity • FrameDebugger Material
FrameDebugger
FrameDebugger
FrameDebugger
Batch • Batch • SetPass • 200 SetPass
Batch SetPass
Batch SetPass Dynamic Batching • • • Static Texture Static Batching
• • •
• • • UI/ • • ImageEffect
Shader • Shader • • 1 Shader Shader
Shader
Shader • Unity Profiler Profiler • • • Profiler Mobile/Unlit/Texture GPU Shader Mobile/VertexLit
• • • Unity
• Profiler • • GPU Profiler
Profiler
• Unity 5.6 • 300 Save Editor • https://github.com/wotakuro/UnityProfilerIntervalSave • Unity5.5 • Android/iOS • https://github.com/wotakuro/ProfilerBinarylogSplit PC
• ※Unity 5.5 using UnityEngine.Profiling;
BeginSample void Update(){ // …. Profiler.BeginSample(“ // Profiler …… Profiler.EndSample(); // …. } ”);
… void LoadAssetBunlde( string name){ Profiler.BeginSample(“AssetBundle // name AssetBundle …… Profiler.EndSample(); } ” + name);
GPU Profiler • • • GPU GPU Profiler Unity Profiler
GPU Profiler • iOS • Xcode OpenGLES Frame Debugger • Android • • Snapdragon -> Snapdragon Profiler • Mali -> Mali Graphics Debugger • Tegra -> Tegra Graphics Debugger • Windows Editor • Render Doc
OpenGLES Frame Debugger
Snapdragon Profiler
Render Doc
Thank you!