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# (Mono Memory)
• Unity
→
C#
Unity
C# Unity
• C#
• C# Garbage Collection
• Reserve( ) C#
• Unity
• Texture, Mesh, Animation
C#
• Used ) Reserved( )
• Editor Editor
• Reserved( ) 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( 60 ) 1
16.6
• 30FPS( 30 ) 1
33.3
->
•
•
•
• C# Unity
• Unity UI
• GameObject
• 3000
C#
UI
GameObject
• C#
•
•
•
• Layer Collision Matrix
•
• MeshCollider BoxCollider
• 1 Physics
• Time FixedTimeStep
• UI
•
• uGUI Animation Canvas
•
• Batch Set Pass
•
• (Overdraw )
• Shader
• Unity FrameDebugger
• Material
FrameDebugger
FrameDebugger
FrameDebugger
Batch SetPass
• Batch
• SetPass
•
200
Batch SetPass
Batch SetPass
• Dynamic Batching
• Texture
• Static Static Batching
•
•
•
•
•
• UI/
•
• ImageEffect
Shader
• Shader 1
• Shader
• Shader
Shader
Shader
• Unity Profiler GPU
Profiler
•
• Shader
Profiler
• Mobile/Unlit/Texture Mobile/VertexLit
•
•
• Unity
• Profiler
•
• GPU Profiler
Profiler
• Unity 5.6
• 300 Save Editor
• https://github.com/wotakuro/UnityProfilerIntervalSave
• Unity5.5
• Android/iOS PC
• https://github.com/wotakuro/ProfilerBinarylogSplit
•
※Unity 5.5 using UnityEngine.Profiling;
BeginSample
void Update(){
//
….
Profiler.BeginSample(“ ”);
// Profiler
……
Profiler.EndSample();
//
….
}
…
void LoadAssetBunlde( string name){
Profiler.BeginSample(“AssetBundle ” + name);
// name AssetBundle
……
Profiler.EndSample();
}
GPU Profiler
• GPU Profiler
• GPU 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!

【Unite 2017 Tokyo】最適化をする前に覚えておきたい技術