Hi,
I been working on an arcade iOS game for the past 3 months and at some point i started to notice some very noticiable hitches while running the game on any of my 3 testing devices (ipad 2, ipad 3 and iphone 5),
At first i thought that it was due to an unoptimized code so i started to strip down the level by removing elements one by one trying to find the source of the hitches
Now i reached the point where i have a totaly empty level with just my custom player controller and my custom default pawn and as my last resource i switched form the last stable version 4.4.3 to the git hub 4.5 preview to see if that fixed the hitches but they continue even if the game is left idle
Some details of my project settings
-Nither my default pawn or my player controller have the tick function enabled
-Mobile HDR On
-Target hardware is set Mobile/Tablet - Maximum Quality
-Platform optimized for mobile under iOS settings
-Support Metal Off
-Support OpenGL Es On
-AIModule, Slate, SlateCore and UMG Modules are loaded
-No extra plugins loaded
I ran this console commands on the devices to try to find the source of the hitches
stat unit
t.HitchThreshold 0.5
stat hitches
stat dumphitches
this is an output from one of the hitches, they all look a like it seems CPU Stall is the one to blame but im not sure what it means i’m attaching a dumplog with several hitches while the game runing idle without interactions
[2014.10.02-15.46.54:995][957]LogStats: ------------------Thread Hitch, Frame 27952 276.3ms ---------------
[2014.10.02-15.46.54:997][957]LogStats: ------------------ Game Thread 276.27ms
[2014.10.02-15.46.54:998][957]LogStats: 276.13ms ( 3) - Thread_4a07_0 - GameThread - STATGROUP_Threads - STATCAT_Advanced
[2014.10.02-15.46.54:999][957]LogStats: 276.12ms ( 2) - FrameTime - STAT_FrameTime - STATGROUP_Engine - STATCAT_Advanced
[2014.10.02-15.46.55:000][957]LogStats: 271.28ms ( 1) - GameEngine Tick - STAT_GameEngineTick - STATGROUP_Engine - STATCAT_Advanced
[2014.10.02-15.46.55:001][957]LogStats: 264.81ms ( 1) - World Tick Time - STAT_WorldTickTime - STATGROUP_Game - STATCAT_Advanced
[2014.10.02-15.46.55:003][957]LogStats: 260.31ms ( 1) - GC Mark Time - STAT_GCMarkTime - STATGROUP_Game - STATCAT_Advanced
[2014.10.02-15.46.55:004][957]LogStats: 199.30ms ( 1) - Game TaskGraph Stalls - STAT_TaskGraph_GameStalls - STATGROUP_Threading - STATCAT_Advanced
[2014.10.02-15.46.55:005][957]LogStats: 199.29ms ( 1) - CPU Stall - Wait For Event - STAT_EventWait - STATGROUP_CPUStalls - STATCAT_Advanced
[2014.10.02-15.46.55:006][957]LogStats: 0.01ms ( 1) - OtherChildren
[2014.10.02-15.46.55:008][957]LogStats: 60.98ms ( 1) - Self
[2014.10.02-15.46.55:009][957]LogStats: 0.03ms ( 1) - OtherChildren
[2014.10.02-15.46.55:010][957]LogStats: 3.65ms ( 2) - Tick Time - STAT_TickTime - STATGROUP_Game - STATCAT_Advanced
[2014.10.02-15.46.55:011][957]LogStats: 3.10ms ( 7) - Game TaskGraph Tasks - STAT_TaskGraph_GameTasks - STATGROUP_Threading - STATCAT_Advanced
[2014.10.02-15.46.55:013][957]LogStats: 2.55ms ( 14) - FTickFunctionTask - STATGROUP_TaskGraphTasks - STATCAT_Advanced
[2014.10.02-15.46.55:015][957]LogStats: 1.36ms ( 26) - OtherChildren
[2014.10.02-15.46.55:018][957]LogStats: 1.19ms ( 1) - SoundscapePlayerController//Temp/Autosaves/Game/Maps/UEDPCGameBackup.UEDPCGameBackup.PersistentLevel.SoundscapePlayerController - STATGROUP_UObjects - STATCAT_Advanced
[2014.10.02-15.46.55:020][957]LogStats: 1.14ms ( 1) - Self
[2014.10.02-15.46.55:020][957]LogStats: 0.05ms ( 2) - OtherChildren
[2014.10.02-15.46.55:021][957]LogStats: 0.54ms ( 16) - OtherChildren
[2014.10.02-15.46.55:023][957]LogStats: 0.55ms ( 11) - OtherChildren
[2014.10.02-15.46.55:024][957]LogStats: 0.86ms ( 11) - OtherChildren
[2014.10.02-15.46.55:025][957]LogStats: 5.97ms ( 1) - RedrawViewports - STAT_RedrawViewports - STATGROUP_Engine - STATCAT_Advanced
[2014.10.02-15.46.55:027][957]LogStats: 3.57ms ( 1) - Self
[2014.10.02-15.46.55:028][957]LogStats: 1.72ms ( 9) - CanvasTextItem Time - STAT_Canvas_TextItemTime - STATGROUP_Canvas - STATCAT_Advanced
[2014.10.02-15.46.55:031][957]LogStats: 1.60ms ( 9) - Self
[2014.10.02-15.46.55:032][957]LogStats: 0.12ms ( 18) - OtherChildren
[2014.10.02-15.46.55:033][957]LogStats: 0.69ms ( 8) - OtherChildren
[2014.10.02-15.46.55:034][957]LogStats: 0.50ms ( 4) - OtherChildren
[2014.10.02-15.46.55:035][957]LogStats: 3.65ms ( 1) - Total Slate Tick Time - STAT_SlateTickTime - STATGROUP_Slate - STATCAT_Advanced
[2014.10.02-15.46.55:036][957]LogStats: 1.99ms ( 2) - DrawWindows - STAT_SlateDrawWindowTime - STATGROUP_Slate - STATCAT_Advanced
[2014.10.02-15.46.55:038][957]LogStats: 1.81ms ( 1) - OnPaint - STAT_SlateOnPaint - STATGROUP_Slate - STATCAT_Advanced
[2014.10.02-15.46.55:041][957]LogStats: 1.60ms ( 1) - OnPaint - STAT_SlateOnPaint - STATGROUP_Slate - STATCAT_Advanced
[2014.10.02-15.46.55:043][957]LogStats: 1.54ms ( 2) - OnPaint - STAT_SlateOnPaint - STATGROUP_Slate - STATCAT_Advanced
[2014.10.02-15.46.55:044][957]LogStats: 1.46ms ( 1) - OnPaint - STAT_SlateOnPaint - STATGROUP_Slate - STATCAT_Advanced
[2014.10.02-15.46.55:045][957]LogStats: 1.33ms ( 1) - OnPaint - STAT_SlateOnPaint - STATGROUP_Slate - STATCAT_Advanced
[2014.10.02-15.46.55:046][957]LogStats: 1.25ms ( 1) - OnPaint - STAT_SlateOnPaint - STATGROUP_Slate - STATCAT_Advanced
[2014.10.02-15.46.55:047][957]LogStats: 1.25ms ( 3) - OtherChildren
[2014.10.02-15.46.55:050][957]LogStats: 0.07ms ( 2) - OtherChildren
[2014.10.02-15.46.55:051][957]LogStats: 0.14ms ( 2) - OtherChildren
[2014.10.02-15.46.55:053][957]LogStats: 0.07ms ( 4) - OtherChildren
[2014.10.02-15.46.55:054][957]LogStats: 0.06ms ( 2) - OtherChildren
[2014.10.02-15.46.55:055][957]LogStats: 0.22ms ( 2) - OtherChildren
[2014.10.02-15.46.55:056][957]LogStats: 0.18ms ( 3) - OtherChildren
[2014.10.02-15.46.55:057][957]LogStats: 1.02ms ( 1) - Slate Rendering GT Time - STAT_SlateRenderingGTTime - STATGROUP_Slate - STATCAT_Advanced
[2014.10.02-15.46.55:058][957]LogStats: 1.02ms ( 3) - OtherChildren
[2014.10.02-15.46.55:060][957]LogStats: 0.63ms ( 10) - OtherChildren
[2014.10.02-15.46.55:062][957]LogStats: 1.19ms ( 11) - OtherChildren
[2014.10.02-15.46.55:062][957]LogStats: 0.01ms ( 1) - OtherChildren
I hope you can help me find a solution to this, the game core mechanic is based on music/timed events and i cant have this 1s-1/2s hitches happening randomly through the game
Let me know if you need more info about this, i’m not posting any code because the level is empty and the player controller and pawn code are striped to the very basics
Cheers!