Bad performance with iOS 12?

I did an update for my game and noticed some really bad performance lags with the new build on older devices. Things like transitions of enemies before were smooth and now are lagging while moving on screen. I did not change the game code at all. I only have used the new Corona BETA build for iOS12 with Corona version 3395.

Now I wonder if there is a huge overhead with the new iOS12 maybe which is causing this for older devices?

I have got some feedback from players that the game crushes on an iPhone5. I experienced the transition lags on an iPad4 (one of the earlier ones) with iOS version 10.3

On an iPhone6 with iOS Version 11.4 the game is running okay, but was a little bit faster before. It has some longer loading times here now. Especially until the main.lua has finished loading and the start screen is showing up!

On an iPhoneXS things are exactly like they should be and were before on the other devices!

Is this normal?

The cynic in me says ‘we want you to buy a new phone so we’re going to make our OS less efficient with each version’…

it feels exactly like this! I mean how do you explain the performance drop?

Question #1 - Is 3395 the version your used originally to build the game? My guess is the answer is, “No.”

Question #2 - Why are you NOT building with the latest version of Corona?  (Granted 3395 is actually pretty recent.)

If you really want to debug this, you’ll need to do a lot of work:

In the following notes, I assume 3395 is NOT the version you used to build your old binary. 

If the answer to question #1 is “No”, OR if you want to skip right up to the latest version of Corona you can skip test C below.

First, create/find these binaries/builds:

A : original  - Original binary (find it, don’t rebuild it)

B : beta orig - Beta + Corona Version used to build A

C : beta 3395 - Beta + Corona 3395

D : beta 3407 - Beta + Corona 3407

Second, use a single test device and  do the following:

  1. Revert to iOS 11.4

  2. Un-install game.

  3. Install version: A

  4. Run and keep track of performance in some section that can be easily repeated.

  5. Repeat 2 … 4 for B

  6. Repeat 2 … 4 for  C

  7. Install iOS 12 on the device

  8. Repeat 2 … 6
     

Third, write out your results as a clear, concise, and precise grid, where ‘XXXX’ is something like normal, slow, very slow, fast, very fast.

    iOS 11            |    iOS 12 


A     XXXX             |  XXXX


B     XXXX             |  XXXX


C     XXXX             |  XXXX


D     XXXX             |  XXXX

Share it with us and we’ll help you evaluate it.

Again, this is a lot for work, so you might simply want to first try using the latest Corona.

Note: I never build using beta release if Corona doesn’t support them explicitly.  I also never build for new binaries without using the latest version of Corona that I have found to be both compatible and stable.

https://www.theguardian.com/technology/2017/dec/21/apple-admits-slowing-older-iphones-because-of-flagging-batteries

The Apple battery slow down is a specific issue where Apple is trying to balance battery life vs., performance on iPhone 6’s. I don’t know that they did this for iPhone 5’s and 4. This feels like a one-off issue.

iOS 12’s main focus was on performance enhancements. Most people should find iOS 12 running better even on older devices than iOS 11 is.

Now that said, with software in general, you can’t keep adding features without consuming more resources (CPU, GPU, Memory, disk, etc.) and consuming more resources makes older hardware obsolete sooner. I have an iPad 4 which is pretty much a brick today because I can’t update the OS on it and there are so many new apps that won’t run on it even to me, the performance on it seems fine. I also wanted to install Fortnite on my Google Nexus 9. Guess what, too old. not compatible. Sigh!

Rob

The cynic in me says ‘we want you to buy a new phone so we’re going to make our OS less efficient with each version’…

it feels exactly like this! I mean how do you explain the performance drop?

Question #1 - Is 3395 the version your used originally to build the game? My guess is the answer is, “No.”

Question #2 - Why are you NOT building with the latest version of Corona?  (Granted 3395 is actually pretty recent.)

If you really want to debug this, you’ll need to do a lot of work:

In the following notes, I assume 3395 is NOT the version you used to build your old binary. 

If the answer to question #1 is “No”, OR if you want to skip right up to the latest version of Corona you can skip test C below.

First, create/find these binaries/builds:

A : original  - Original binary (find it, don’t rebuild it)

B : beta orig - Beta + Corona Version used to build A

C : beta 3395 - Beta + Corona 3395

D : beta 3407 - Beta + Corona 3407

Second, use a single test device and  do the following:

  1. Revert to iOS 11.4

  2. Un-install game.

  3. Install version: A

  4. Run and keep track of performance in some section that can be easily repeated.

  5. Repeat 2 … 4 for B

  6. Repeat 2 … 4 for  C

  7. Install iOS 12 on the device

  8. Repeat 2 … 6
     

Third, write out your results as a clear, concise, and precise grid, where ‘XXXX’ is something like normal, slow, very slow, fast, very fast.

    iOS 11            |    iOS 12 


A     XXXX             |  XXXX


B     XXXX             |  XXXX


C     XXXX             |  XXXX


D     XXXX             |  XXXX

Share it with us and we’ll help you evaluate it.

Again, this is a lot for work, so you might simply want to first try using the latest Corona.

Note: I never build using beta release if Corona doesn’t support them explicitly.  I also never build for new binaries without using the latest version of Corona that I have found to be both compatible and stable.

https://www.theguardian.com/technology/2017/dec/21/apple-admits-slowing-older-iphones-because-of-flagging-batteries

The Apple battery slow down is a specific issue where Apple is trying to balance battery life vs., performance on iPhone 6’s. I don’t know that they did this for iPhone 5’s and 4. This feels like a one-off issue.

iOS 12’s main focus was on performance enhancements. Most people should find iOS 12 running better even on older devices than iOS 11 is.

Now that said, with software in general, you can’t keep adding features without consuming more resources (CPU, GPU, Memory, disk, etc.) and consuming more resources makes older hardware obsolete sooner. I have an iPad 4 which is pretty much a brick today because I can’t update the OS on it and there are so many new apps that won’t run on it even to me, the performance on it seems fine. I also wanted to install Fortnite on my Google Nexus 9. Guess what, too old. not compatible. Sigh!

Rob