Difference between release and debug mode?


#1

In my experience, I’ve had significantly WORSE performance deploying on iOS with ‘release’ checked versus ‘debug’ when bundling a Defold app. I’m close to launching my app, and as far as I can tell it should be okay to launch on the app store by bundling a ‘debug’ version of the app, but I’d like to get more information about what that checkbox actually does.

But before doing this, I want to make sure there aren’t any ‘gotchas’ I’m missing about debug mode. Are there any detailed descriptions outlining the differences between ‘release’ and ‘debug’ mode? Or why I might be getting worse performance (crashes, longer load times) when bundling in ‘release’ mode?


#2

I would advice against releasing an app with “debug”. My major concern is that the debug version will open up the web profiler and “target system” (build & launch/attach debugger from the Editor).

The debug version also does OpenGL error checking after (most) OGL function calls internally, which can (highly likely) decrease performance.

Instead we should figure out why you are getting worse performance with the release builds, this sounds very fishy, if anything it should be better performance… :confused:

What crashes are you experiencing?
Where are the longer load times (collection proxy loads?)?


#3

Hi @sven ,

What are the implications of exposing the web profiler and target system? Is there any possibility of sensitive user information leaking? (Currently our game doesn’t collect any usernames/passwords, but likely will in the future).

The types of crashes I’ve been seeing is described here: How to interpret crash logs? . It should be noted that since that post, I’ve experienced app crashes that do NOT appear to be reported by crash.load_previous. I’m happy to provide the iPhone crash dumps for those if you want.

One thing that led me to this approach is this post: Release mode doesn’t work with some Native Extensions (SOLVED) . While it’s marked resolved, is it possible that native extensions are still buggy with release mode? I’m using 2 of them in my project, and in release mode the admob extension I’m using (https://www.defold.com/community/projects/93085/) crashes more often than not when it’s opened. It doesn’t appear to crash at all in debug mode.

As as performance, yes collection proxies are the biggest culprit. More than actual time to load, is the variance in load times (sometimes it’s an acceptable 500-1000ms, but other times it can be closer to 5000ms which is too long). I’ve also noticed a consistent, reproducible “hiccup” in music playing on the first loaded collection, about 1500ms after loading it.